禁止不必要的类型断言
禁止不改变表达式类型的类型断言。
✅
在 "plugin:@typescript-eslint/recommended-type-checked"
中扩展 ESLint 配置 将启用此规则。
🔧
此规则报告的一些问题可以通过 --fix
ESLint 命令行选项 自动修复。
💭
此规则需要 类型信息 才能运行。
TypeScript 可以使用 as
类型断言来告知表达式与预期类型不同。在代码库中保留 as
断言会增加视觉上的混乱并损害代码可读性,因此,如果它们不改变表达式的类型,最好将其删除。此规则会在类型断言不改变表达式的类型时报告。
.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/no-unnecessary-type-assertion": "error"
}
};
在游乐场中尝试此规则 ↗
示例
- ❌ 错误
- ✅ 正确
选项
此规则接受以下选项
type Options = [
{
/** A list of type names to ignore. */
typesToIgnore?: string[];
},
];
const defaultOptions: Options = [{}];
typesToIgnore
使用 @typescript-eslint/no-unnecessary-type-assertion: ["error", { typesToIgnore: ['Foo'] }]
,以下代码是正确的
type Foo = 3;
const foo: Foo = 3;
在游乐场中打开何时不使用它
如果您不关心代码中是否存在无操作类型断言,则可以关闭此规则。
类型检查的 lint 规则比传统的 lint 规则更强大,但也需要配置 类型检查的 lint。如果您在启用类型检查的规则后遇到性能下降,请参阅 性能故障排除。