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

Typescript 在tsconfig.json中始终将--alwaysStrict设置为true是一个好主意吗?,typescript,typescript2.0,Typescript,Typescript2.0,只是想知道包括以下内容是否有任何缺点: "compilerOptions": { "alwaysStrict": true, ... } 因为它默认为false。想法 只是想知道是否有任何缺点,包括 即使您的文件不会处于strict模式,也会像对待它一样对待它。e、 g.不允许您在函数体中创建函数声明: 就个人而言:穿上它是个好主意。最好始终使用JavaScript/TypeScript模块(默认情况下处于严格模式)。strict vs alwaysStrict 不仅包括alwaysS

只是想知道包括以下内容是否有任何缺点:

"compilerOptions": {
  "alwaysStrict": true,
 ...
 }
因为它默认为false。想法

只是想知道是否有任何缺点,包括

即使您的文件不会处于
strict
模式,也会像对待它一样对待它。e、 g.不允许您在函数体中创建函数声明:

就个人而言:穿上它是个好主意。最好始终使用JavaScript/TypeScript模块(默认情况下处于严格模式)。

strict vs alwaysStrict 不仅包括
alwaysStrict
,而且包括
strict
标志是一个好主意,该标志启用
alwaysStrict
noImplicitAny
noImplicitThis
StrictCallApply
StrictCallApply
NullChecks>,
strictFunctionTypes
strictPropertyInitialization
更为重要

混淆的名字 这里的名字很混乱,因为“严格”在这里几乎没有什么意义。
strict
TypeScript标志是启用上述多个其他标志的快捷方式。
alwaysStrict
TypeScript标志在parses in中解析您的文件(与输出中的
'use strict'
相反)。您可以将
alwaysStrict
标志添加到所有文件中(默认情况下是严格的)

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

在这方面,
stricknullchecks
是最重要的

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

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

它将以严格模式进行分析,并对每个源文件发出“使用严格的”
,因此您的问题基本上与以下问题相同: