繁体   English   中英

什么时候需要在TypeScript中声明返回函数类型?

[英]When is it necessary to declare return function type in TypeScript?

如果我具有以下基本功能, typescript可以自动推断返回类型。

function myFunction(x: number, y: number) {
  return x * y;
}

它是唯一有用的声明返回类型,如果typescript ,因为一些其他的呼叫泄漏无法推断返回类型any ,所以它不能作出正确的推论?

function myFunction(x: number, y: number) {
  return x * y || callThatReturnsAny();
}

在这种情况下,如果我知道callThatReturnsAny()返回一个number我想输入它

function myFunction(x: number, y: number): number {
  return x * y || callThatReturnsAny();
}

尽管最好的解决方案只是键入callThatReturnsAny()以便typescript可以进行推断? 但是在那种情况下,您何时应该真正使用显式返回类型呢?

我打开noImplicitAny并避免在几乎所有情况下(函数除外)添加类型注释。 为什么? 因为我不想在以下情况下意外返回联合类型:

  1. 我忘了返回一个值
  2. 我返回了错误类型的值

例如,如果我开始的时候,我的日子会有所不同:

function example(a: number, b: number) {

VS

function example(a: number, b: number): number {

接下来会发生什么...

function example(a: number, b: number) {
    if (a > 5) {
        return 5;
    }

    if (b > a) {
        return 'b';
    }
}

我的退货类型现在是number | string | undefined number | string | undefined number | string | undefined

如果使用返回类型注释,则会获得其他帮助*。

它可以帮助您返回正确的类型:

返回类型错误

在严格模式下,它确保您每次都返回一些内容。

缺少退货(严格模式)

*如果您需要其他帮助,则还将打开所有严格的要求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM