跳至主要内容

非空类型断言风格

强制使用非空断言而不是显式类型转换。

🔧

此规则报告的一些问题可以通过 --fix ESLint 命令行选项 自动修复。

💭

此规则需要 类型信息 才能运行。

有两种常见的在不使用 nullundefined 的情况下向 TypeScript 断言值是其类型的方法

  • !: 非空断言
  • as: 具有巧合等效类型的传统类型断言

! 非空断言通常更受欢迎,因为它们需要更少的代码,并且随着类型的变化,它们更难出现不同步的情况。此规则报告 as 转换与 ! 转换执行相同操作的情况,并建议将代码修复为 !

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/non-nullable-type-assertion-style": "error"
}
};

在游乐场中尝试此规则 ↗

示例

const maybe: string | undefined = Math.random() > 0.5 ? '' : undefined;

const definitely = maybe as string;
const alsoDefinitely = <string>maybe;
在游乐场中打开

选项

此规则不可配置。

何时不使用它

如果您不介意使用不必要的冗长类型断言,您可以避免此规则。


类型检查的 lint 规则比传统的 lint 规则更强大,但也需要配置 类型检查的 lint。如果您在启用类型检查规则后遇到性能下降,请参阅 性能故障排除

资源