TypeScript 在TSConfig中除了严格模式外,还拥有一个啰嗦的选项,

cbjzeqam  于 3个月前  发布在  TypeScript
关注(0)|答案(6)|浏览(45)

🔍 搜索词

"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设置都存在很好的原因,让我们让人们更容易地使用它们。

xxls0lw8

xxls0lw81#

FWIW,您可以通过扩展@tsconfig/strictest来实现这一点,现在我们支持多个tsconfig扩展,这使得操作变得更加容易。

gg58donl

gg58donl2#

@RyanCavanaugh此前曾反对这样的旗帜。
https://gist.github.com/RyanCavanaugh/f80f9ddc50d45c4d76e7c4101efada28#should---pedantic-exist
相关: #38905

klsxnrf1

klsxnrf13#

我已经回复了Ryan的gist。
@jakebailey,这非常有用,谢谢你!

up9lanfz

up9lanfz4#

我同意@docwilco在gist中的评论,尤其是建议在特定的错误中包含导致其被报告的标志。我也想将此标志用于一种领先CI构建的形式,以便在我收到新TypeScript版本时提前警告我可能需要注意的事情。

axr492tv

axr492tv5#

我同意。tsconfig.json现在有太多的配置选项了!使用--pedantic,我们可以这样解释:This option is the strictest option that is stricter than --strict.。只需启用--strict--pedantic,我就不需要关心其他太多选项了。

vc9ivgsu

vc9ivgsu6#

哈哈,只有严肃的:让教条主义成为默认,如果人们认为他们必须这样做,就让他们摘下安全栏。

相关问题