在tsconfig.json中始终将--alwaysStrict设置为true是一个好主意吗?

Ole*_*Ole 6 typescript typescript2.0

只是好奇是否有任何缺点包括:

"compilerOptions": {
  "alwaysStrict": true,
 ...
 }
Run Code Online (Sandbox Code Playgroud)

因为它默认是假的.思考?

rsp*_*rsp 15

严格与始终严格

这是一个好主意,不仅包括alwaysStrict,但包括strict标志,使alwaysStrict noImplicitAnynoImplicitThisstrictBindCallApplystrictNullChecksstrictFunctionTypesstrictPropertyInitialization这是更重要的。

令人困惑的名字

这里的名称存在混淆,因为“严格”在这里几乎没有什么意思。的strict打字稿标志是一个快捷方式,以使上述多个其他标志。该alwaysStrict打字稿标志解析您的文件中解析JS的严格模式(而不是JS的马虎模式和发射'use strict'输出,而是使用的alwaysStrict标志,你可以添加"use strict";到您的所有文件(的ES模块,默认情况下严格)。

其他严格标志

其他严格的 TypeScript 标志甚至更重要,因为它们可以帮助您消除这些错误:

strictNullChecks在这方面最重要的一个。

默认情况下不启用它,以便与在添加检查 null 和 undefined 的新方法之前编写的旧代码向后兼容。

有关更多详细信息,请参阅此答案:


bas*_*rat 6

只是好奇是否有任何缺点包括

即使你的文件不是strict模式,它也会被视为现在.例如,你不会被允许在函数体内创建一个函数声明:为什么TS抱怨函数体内的函数声明

就个人而言:拥有它是一个好主意.最好总是使用JavaScript/TypeScript 模块(默认情况下处于严格模式).