工具链要求
Google 风格要求以特定方式使用一些工具,如下所述。
TypeScript 编译器
所有 TypeScript 文件必须使用标准工具链通过类型检查。
@ts-ignore
不要使用 @ts-ignore 及其变体 @ts-expect-error 或 @ts-nocheck。
为什么?
它们表面上看起来是“修复”编译器错误的简单方法,但实际上,特定的编译器错误通常是由更大的问题引起的,可以更直接地修复。
例如,如果你使用 @ts-ignore
来抑制类型错误,那么很难预测周围的代码最终会看到什么类型。对于许多类型错误,如何最好地使用
any 中的建议是有用的。
你可以在单元测试中使用
@ts-expect-error,但通常不应该这样做。@ts-expect-error
会抑制所有错误。很容易意外地过度匹配并抑制更严重的错误。考虑以下替代方案:
- 当测试需要处理运行时未检查值的 API 时,添加到预期类型或
any的转换并添加解释性注释。这将错误抑制限制在单个表达式中。 - 抑制 lint 警告并说明原因,类似于抑制
anylint 警告。
合规性
Google TypeScript 包含几个合规性框架(Conformance Framework),包括 tsetse 和 tsec 。
这些规则通常用于强制执行关键限制(例如定义全局变量,这可能破坏代码库)和安全模式(例如使用
eval 或赋值给 innerHTML),或更宽松地用于提高代码质量。
Google 风格的 TypeScript 必须遵守任何适用的全局或框架本地的合规规则。
Last updated on