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

标签 javascript typescript

我了解到在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/

相关文章:

angular - 控制生成的内容 - *ngIf 的转译/编译时间版本

javascript - 如何在reactjs中使用javascript更改样式

javascript - 将 jQuery 选择器用于 css,转义特殊字符

JavaScript,提交时

angular - 数字不断产生 ionic 3

javascript - 在 Typescript 中使用动态键名称访问状态

javascript - HTML 中使用异步管道检索数据的 Angular 6 问题

javascript - jQuery on click div 具有 100% 屏幕高度

javascript - 是否可以分段运行循环? - JavaScript

node.js - TypeScript 的 Mongoose 导入不起作用