只是好奇是否有任何缺点包括:
"compilerOptions": {
"alwaysStrict": true,
...
}
因为默认情况下它是假的。想法?
答案 0 :(得分:6)
只是好奇包括
是否有任何缺点
即使您的文件不是strict
模式,它也会被视为原样。例如您将不被允许在函数体内创建函数声明:Why TS complains with function declarations inside function body
个人:开启它是一个好主意。最好总是使用JavaScript / TypeScript 模块(默认情况下处于严格模式)。
答案 1 :(得分:3)
不仅包括alwaysStrict
,而且包括启用strict
< strong>和甚至更重要的alwaysStrict
,noImplicitAny
,noImplicitThis
,strictBindCallApply
,strictNullChecks
和strictFunctionTypes
。< / p>
这里的名称有些混乱,因为“严格”在这里可能意味着很少的东西。
strictPropertyInitialization
TypeScript标志是启用上面提到的其他多个标志的快捷方式。 strict
的TypeScript标志使用the JS strict mode中的分析来解析文件(与the JS sloppy mode相对,并在输出中发出alwaysStrict
。与使用'use strict'
标志不同,您可以可以将alwaysStrict
添加到您的所有文件中(ES modules默认是严格的)。
其他严格的TypeScript标志甚至更重要,因为它们可以帮助您消除这些错误:
"use strict";
是这方面最重要的一个。
默认情况下未启用该功能,以便与添加新的检查null和undefined的方法之前编写的旧代码向后兼容。
有关更多详细信息,请参见此答案: