---
url: /docs/guide/usage/linter/rules/typescript/no-explicit-any.md
---

### 作用

不允许显式使用 `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> {}
```

## 配置

此规则接受一个包含以下属性的配置对象：

### fixToUnknown

type: `boolean`

default: `false`

是否启用自动修复，将 `any` 类型转换为 `unknown` 类型。

### ignoreRestArgs

type: `boolean`

default: `false`

是否忽略剩余参数数组。

## 如何使用

## 版本

此规则在 v0.0.13 中添加。

## 参考
