跳至内容

typescript/no-explicit-any 限制

🛠️ 已针对此规则提供自动修复,以便处理部分违规行为。

作用

禁止显式使用 any 类型。

这是为什么不好?

TypeScript 中的 any 类型是从类型系统“逃脱”的一个危险“逃生口”。使用 any 会禁用许多类型检查规则,并且通常最好只在最后使用它或在对代码进行原型设计时使用。该规则报告了作为类型注解显式使用 any 关键字的情况。

TypeScript 的 --noImplicitAny 编译器选项阻止隐式使用 any,但不会像此规则那样阻止显式使用 any

示例

此规则禁止以下不正确的代码示例

typescript
const age: any = "seventeen";
const ages: any[] = ["seventeen"];
const ages: Array<any> = ["seventeen"];
function greet(): any {}
function greet(): any[] {}
function greet(): Array<any> {}
function greet(): Array<Array<any>> {}
function greet(param: Array<any>): string {}
function greet(param: Array<any>): Array<any> {}

此规则允许以下正确的代码示例

typescript
const age: number = 17;
const ages: number[] = [17];
const ages: Array<number> = [17];
function greet(): string {}
function greet(): string[] {}
function greet(): Array<string> {}
function greet(): Array<Array<string>> {}
function greet(param: Array<string>): string {}
function greet(param: Array<string>): Array<string> {}

选项

此规则接受以下选项

ignoreRestArgs

一个布尔值,用于指定是否认为使用 rest 运算符的数组是允许的。默认为 false

fixToUnknown

是否启用自动修复,其中 any 类型将转换为 unknown 类型。默认为 false

参考资料

在麻省理工学院许可证下发布。