高阶函数返回类型void忽略

时间:2020-07-17 13:33:37

标签: typescript

我偶然发现了以下问题,我想知道这到底是错误还是故意的,我误解了某些typescript行为:

function foo(): void {
  return ''
}

编译错误(预期

function bar(): () => number {
  return () => ''
}

编译错误(预期

function baz(): () => string {
  return () => ''
}

没有编译错误(预期

function qux(): () => void {
  return () => ''
}

没有编译错误(未预期

如上所述,

  • foo类型表示return void(无),但函数returns a string [预期编译错误]
  • bar类型说为return a function that returns a number,但returns a function that returns a string [预期编译错误]
  • baz类型说return a function that returns a string,并且这样做[没有预期的编译错误]
  • qux类型说return a function that returns void(无),但returns a function that returns a string [预期编译错误]

qux 不会引发编译错误怎么办?

TypeScript - Playground

0 个答案:

没有答案