代码之家  ›  专栏  ›  技术社区  ›  Adam Thompson

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

  •  0
  • Adam Thompson  · 技术社区  · 6 年前

    如果我有以下基本功能 typescript 可以自动推断退货类型。

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

    仅在以下情况下声明返回类型有用吗 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() 打字稿 你能做出推论吗?但是在这种情况下,什么时候应该真正使用显式返回类型呢?

    1 回复  |  直到 6 年前
        1
  •  7
  •   Fenton    6 年前

    我打开电源 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 .

    如果我使用返回类型注释,我会得到额外的帮助*。

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

    Wrong return type

    Missing return (strict mode)

    * 如果你需要额外的帮助,你也可以 所有严格的东西都打开了