这是打字稿编译器的错误吗?使用联合类型的高阶函数

问题描述 投票:0回答:1
function toNumber(input: 'a' | 'b'): number {
  switch (input) {
    case 'a':
      return 1;

    case 'b':
      return 2;
  }
}

function bar(toNumber: (input: 'a' | 'b' | 'c') => number): number {
  return toNumber('c');
}

bar(toNumber); // No typescript error, but returns `undefined`

我希望 TypeScript 在最后一行报告错误。那里显然存在类型错误。

这是打字稿编译器的错误吗?如果是这样,您能否将我链接到编译器存储库中的一个未解决问题,或者我应该创建一个?

typescript function union higher-order-functions
1个回答
0
投票

仅当选项

strict
设置为
false
时,Typescript 才会忽略此错误。

(感谢@andy-ray 在评论中指出这一点)

© www.soinside.com 2019 - 2024. All rights reserved.