如何强制在Typescript中的所有变量声明一个类型

时间:2014-02-07 19:48:16

标签: javascript typescript

据我所知,当你在Typescript中声明一个变量时,你可以选择是否为变量指定一个类型。如果没有指定类型,则默认为" any"使用类型。有没有办法强制所有变量都声明一个类型,即使它可能是"任何"。在中,我想要在未指定类型时出现编译器错误。这样程序员就会被迫给所有类型提供一个类型,并防止变量意外遗留的情况为"任何"。

2 个答案:

答案 0 :(得分:19)

声明的变量在TypeScript中必然没有类型是不正确的。在可能的情况下,TypeScript编译器将根据声明的右侧推断类型。

例如:

var x = 150;

x将是一个数字,因为RHS是一个数字。

您可以使用命令行编译选项来捕获使用--noImplicitAny无法推断出类型的声明:

  

使用隐含的'any'类型警告表达式和声明。

此选项会捕获例如声明变量d但尚未立即赋值的情况。

var d;

会产生错误:

  

错误TS7006:'test'的参数'd'隐式具有'any'类型。

编译器开关还捕获没有指定类型的参数,并且在注释中指出@basarat,它还捕获返回类型和类/接口成员。

this blog post中还有更多信息。请注意,还有一个等效的MSBuild /项目设置:<TypeScriptNoImplicitAny>

答案 1 :(得分:4)

您也可以设置tsconfig.json

{
  "compilerOptions": {
     "noImplicitReturns": true,
     "noImplicitAny": true
  }
}