我了解到在Typescript中声明变量时,可以选择是否为变量指定类型。如果未指定类型,则使用默认的“any”类型。有没有办法强制所有变量都声明一个类型,即使它可能是“任何”。就像在未指定类型时,我想要一个编译器错误。这样一来,程序员将被迫为所有内容赋予一个类型,并防止变量被意外保留为“any”的情况。
最佳答案
在 TypeScript 中声明的变量不一定没有类型是不正确的。 TypeScript 编译器将在可能的情况下根据声明的右侧推断类型。
例如:
var x = 150;
x
将是一个数字,因为 RHS 是一个数字。
您可以使用命令行编译选项来捕获无法使用 --noImplicitAny
推断类型的声明:
Warn on expressions and declarations with an implied 'any' type.
此选项会捕获变量 d
的情况例如已声明,但未立即分配给一个值。
var d;
会产生错误:
error TS7006: Parameter 'd' of 'test' implicitly has an 'any' type.
编译器开关还捕获没有指定类型的参数,如@basarat在评论中指出,它还捕获返回类型和类/接口(interface)成员。
this blog post 中有更多信息以及。请注意,还有一个等效的 MSBuild/项目设置可用:<TypeScriptNoImplicitAny>
.
关于javascript - 如何强制Typescript中的所有变量都声明一个类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21636535/