相关疑难解决方法(0)

打字稿承诺泛型类型

我有一个示例Promise函数,如下所示.在成功的时候我会回来number并且假的我会回来string.编译器抱怨要为promise指定某种泛型类型.在这种情况下,我要指定什么类型?我要指定喜欢Promise<number>还是Promise<number | string>

function test(arg: string): Promise {
    return new Promise((resolve, reject) => {
        if (arg === "a") {
            resolve(1);
        } else {
            reject("1");
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

generics typescript

29
推荐指数
2
解决办法
3万
查看次数

如何声明一个在Typescript中引发错误的函数

在Java中,我将这样声明一个函数:

public boolean Test(boolean test) throws Exception {
  if (test == true)
    return false;
  throw new Exception();
}
Run Code Online (Sandbox Code Playgroud)

而且我可以使用此功能而无需处理异常。

如果可能,如何在Typescript中执行相同的操作?编译器会告诉我,如果没有try / catch,我将无法使用该函数。

typescript

16
推荐指数
3
解决办法
7444
查看次数

如何记录JavaScript承诺的已解析值

鉴于此代码:

function asyncFoo() {
  return new Promise(function (fulfill, reject) {
    doAsyncStuff(function(err, data) {
      if(err) reject(new Error(err));
      else fulfill(new Bar(data));
    });
  });
}
Run Code Online (Sandbox Code Playgroud)

我如何记录asyncFoo将返回一个Promise,当满足时将产生一个实例Bar,并且当被拒绝时将产生一个实例Error

/**
 * @return << Here, what do I have to write? >>
 */
function asyncFoo() { ... }
Run Code Online (Sandbox Code Playgroud)

javascript jsdoc

9
推荐指数
2
解决办法
6006
查看次数

TypeScript:如何使用泛型输入react-query useMutation onError?

考虑一个自定义useSignUp钩子,该mutate()钩子函数需要一些字段(nameemail本例中):

export default function App() {
  const name = "David";
  const email = "david@gmail.com";
  const signupMutation = useSignUp();

  return (
    <button
      onClick={() => {
        signupMutation.mutate(
          { name, email },
          {
            onSuccess: (result) => {
              ...
            },
            onError: (result) => {
              // Wanted: result of type ErrorResult<"name" | "email">
            }
          }
        );
      }}
    >
      Sign Up
    </button>
  );
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望onError的结果是这种类型ErrorResponse<"name" | "email">。但是,我明白了ErrorResponse<string>

这是为什么?我如何指示 TypeScript 根据传递的数据推断特定的类型(即"name" | …

typescript reactjs typescript-generics react-hooks react-query

9
推荐指数
1
解决办法
2万
查看次数