How to force all variables in Typescript to have a type declared

后端 未结 2 1044
执笔经年
执笔经年 2021-02-12 09:54

I understand that when you declare a variable in Typescript, you can choose whether or not to specify a type for the variable. If no type is specified, the default \"any\" type

相关标签:
2条回答
  • 2021-02-12 10:28

    You could also set in your tsconfig.json:

    {
      "compilerOptions": {
         "noImplicitReturns": true,
         "noImplicitAny": true
      }
    }
    
    0 讨论(0)
  • 2021-02-12 10:40

    It's not true that a variable declared is necessarily without type in TypeScript. The TypeScript compiler will, when possible, infer a type based on the right hand side of a declaration.

    For example:

    var x = 150;
    

    x will be a Number as the RHS is a number.

    You can use the command line compile option to catch declarations where the type cannot be inferred by using --noImplicitAny:

    Warn on expressions and declarations with an implied 'any' type.

    This option would catch a case where a variable d for example is declared, yet not assigned to a value immediately.

    var d;
    

    Will produce an error:

    error TS7006: Parameter 'd' of 'test' implicitly has an 'any' type.

    The compiler switch also catches parameters without a specified type, and as @basarat pointed out in a comment, it also catches return types and class/interface members.

    There's a little more information in this blog post as well. Note that there's also an equivalent MSBuild/project setting available: <TypeScriptNoImplicitAny>.

    0 讨论(0)
提交回复
热议问题