Skip to Content
TypeScript工具链要求

工具链要求

Google 风格要求以特定方式使用一些工具,如下所述。

TypeScript 编译器

所有 TypeScript 文件必须使用标准工具链通过类型检查。

@ts-ignore

不要使用 @ts-ignore 及其变体 @ts-expect-error@ts-nocheck

为什么?

它们表面上看起来是“修复”编译器错误的简单方法,但实际上,特定的编译器错误通常是由更大的问题引起的,可以更直接地修复。

例如,如果你使用 @ts-ignore 来抑制类型错误,那么很难预测周围的代码最终会看到什么类型。对于许多类型错误,如何最好地使用 any 中的建议是有用的。

可以在单元测试中使用 @ts-expect-error,但通常不应该这样做。@ts-expect-error 会抑制所有错误。很容易意外地过度匹配并抑制更严重的错误。考虑以下替代方案:

  • 当测试需要处理运行时未检查值的 API 时,添加到预期类型或 any 的转换并添加解释性注释。这将错误抑制限制在单个表达式中。
  • 抑制 lint 警告并说明原因,类似于抑制 any lint 警告

合规性

Google TypeScript 包含几个合规性框架(Conformance Framework),包括 tsetse tsec 

这些规则通常用于强制执行关键限制(例如定义全局变量,这可能破坏代码库)和安全模式(例如使用 eval 或赋值给 innerHTML),或更宽松地用于提高代码质量。

Google 风格的 TypeScript 必须遵守任何适用的全局或框架本地的合规规则。

Last updated on