typescript/consistent-type-assertions 风格
它做了什么
强制统一使用 TypeScript 类型断言。
为什么这是不好的?
混合使用断言风格(as 与尖括号)会使代码更难阅读和维护。
在某些代码库中,出于安全考虑,类型断言被禁止,推荐使用更安全的替代方案,例如类型注解或 satisfies。
示例
此规则的 错误 代码示例(默认:assertionStyle: "as"):
ts
const value = <Foo>bar;此规则的 正确 代码示例(默认:assertionStyle: "as"):
ts
const value = bar as Foo;此规则的 错误 代码示例(当 assertionStyle: "angle-bracket" 时):
ts
const value = bar as Foo;此规则的 正确 代码示例(当 assertionStyle: "angle-bracket" 时):
ts
const value = <Foo>bar;此规则的 错误 代码示例(当 assertionStyle: "never" 时):
ts
const value = bar as Foo;此规则的 正确 代码示例(当 assertionStyle: "never" 时):
ts
const value: Foo = bar;
const value = bar satisfies Foo;当禁止对象/数组字面量断言时,应优先使用注解或 satisfies:
ts
// 错误(当 `objectLiteralTypeAssertions: "never"` 时)
const obj = { a: 1 } as Foo;
// 正确
const obj: Foo = { a: 1 };
const obj = { a: 1 } satisfies Foo;配置
assertionStyle
type: "never"
如何使用
要通过配置文件或 CLI 启用 此规则,可以使用:
json
{
"rules": {
"typescript/consistent-type-assertions": "error"
}
}bash
oxlint --deny typescript/consistent-type-assertions