打字稿无法推断通用函数参数

时间:2020-06-16 01:47:02

标签: javascript typescript generics web

我创建了一个沙箱,详细说明了我遇到的错误here

type UnaryFn = <A, B>(x: A) => B;

const tryPipe = (...fns: UnaryFn[]) => (orDefault: UnaryFn) =>
  // @ts-ignore
  tryCatch(pipe(...fns), orDefault);

const ageTransformation = tryPipe(toUpper, append("."))((err: Error) => {
  console.log(err, "ageTransformation failed");
  return "USER.";
});

toUpper抛出错误:

Argument of type '(str: string) => string' is not assignable to parameter of type 'UnaryFn'.
Types of parameters 'str' and 'x' are incompatible.
Type 'A' is not assignable to type 'string'.

据我所知,A的值应推断为string,同样,管道中每个函数的B也应推断为。谁能向我解释为什么Typescript无法正确推断值类型,或者我是否误解了泛型。

0 个答案:

没有答案