编辑器正确推断参数类型,但仍然抱怨参数是“任何”类型

时间:2021-04-30 11:01:06

标签: typescript intellij-idea webstorm

正如标题所说,类型推断正确(见下图),但我仍然收到 TS 错误,抱怨 any 类型。完整代码在图片下方。

这是编辑器还是 TypeScript 的问题?也许还有其他我没有考虑过的东西?谢谢。

editor inferred type

export function createArrayCycle<T>(array: T[]): <U>(func?: (arg: T) => U) => T {
  let cycleCount = 0;

  return function cycle<U>(func): T | U {
    if (cycleCount === array.length) {
      cycleCount = 0;
    }

    if (func) {
      return func(array[cycleCount++]);
    }

    return array[cycleCount++];
  };
}

1 个答案:

答案 0 :(得分:0)

这是编译器错误;您必须在 "noImplicitAny" 中启用 tsconfig.json(或将 "strict" 设置为 true)。如果编译器不能从用法推断参数类型,它会回退到 any 类型;启用 "noImplicitAny" 后,它会在推断出 any: https://www.typescriptlang.org/tsconfig#noImplicitAny 时报告错误。

您需要禁用此选项以使编译器容忍参数而不声明其类型或显式指定参数类型

相关问题