🔍 搜索词
"tsconfig pedantic" "tsconfig setting" "tsconfig noimplicitreturn" "tsconfig noimplicitreturn pedantic"
✅ 可实现性检查清单
- 这不会对现有的TypeScript/JavaScript代码造成破坏性的更改
- 这不会改变现有JavaScript代码的运行时行为
- 这可以在不根据表达式的类型发射不同的JS的情况下实现
- 这不是一个运行时特性(例如库功能,带有JavaScript输出的非ECMAScript语法,新的JS语法糖等)
- 这个特性将与我们设计目标的其他部分一致: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals
⭐ 建议
如果有 pedantic
选项,可以沿着 tsconfig.json
的路线,基本上打开所有内容。
例如,我目前有以下设置:
"strict": true,
"allowUnreachableCode": false,
"allowUnusedLabels": false,
"exactOptionalPropertyTypes": true,
"noFallthroughCasesInSwitch": true,
"noImplicitOverride": true,
"noImplicitReturns": true,
"noPropertyAccessFromIndexSignature": true,
"noUncheckedIndexedAccess": true,
"noUnusedParameters": true,
"noUnusedLocals": true,
这会打开文档中列出的所有检查,但要弄清楚哪些选项没有被第一行覆盖( "strict": true
)有点困难。此外,如果引入了新的Type Checking设置,我还需要自己找出并手动添加它们。
我建议有一个简单的选项 pedantic
,它将所有选项设置为最严格的选项。基本上用一行 "pedantic": true
替换上面的整个列表。当添加新设置时,它们将自动被包含在内。
📃 激励性示例
如果 strict
是好的,那么 pedantic
应该更好。不是每个人都能在所有情况下使用它,但是这些设置存在的原因,而这是最简单的方法来打开它们所有的内容。
当然,个别设置仍然可以被覆盖,以防特定的代码需要这样做。但是,努力编写尽可能干净的TypeScript代码的程序员将能够让编译器尽可能多地帮助他们使用这个功能。
所有Type Checking设置都存在很好的原因,让我们让人们更容易地使用它们。
6条答案
按热度按时间xxls0lw81#
FWIW,您可以通过扩展
@tsconfig/strictest
来实现这一点,现在我们支持多个tsconfig扩展,这使得操作变得更加容易。gg58donl2#
@RyanCavanaugh此前曾反对这样的旗帜。
https://gist.github.com/RyanCavanaugh/f80f9ddc50d45c4d76e7c4101efada28#should---pedantic-exist
相关: #38905
klsxnrf13#
我已经回复了Ryan的gist。
@jakebailey,这非常有用,谢谢你!
up9lanfz4#
我同意@docwilco在gist中的评论,尤其是建议在特定的错误中包含导致其被报告的标志。我也想将此标志用于一种领先CI构建的形式,以便在我收到新TypeScript版本时提前警告我可能需要注意的事情。
axr492tv5#
我同意。
tsconfig.json
现在有太多的配置选项了!使用--pedantic
,我们可以这样解释:This option is the strictest option that is stricter than --strict.
。只需启用--strict
和--pedantic
,我就不需要关心其他太多选项了。vc9ivgsu6#
哈哈,只有严肃的:让教条主义成为默认,如果人们认为他们必须这样做,就让他们摘下安全栏。