noExplicitAny
诊断类别:lint/suspicious/noExplicitAny
¥Diagnostic Category: lint/suspicious/noExplicitAny
自从:v1.0.0
¥Since: v1.0.0
来源:
¥Sources:
-
与以下相同:
@typescript-eslint/no-explicit-any
¥Same as:
@typescript-eslint/no-explicit-any
禁止使用 any
类型。
¥Disallow the any
type usage.
TypeScript 中的 any
类型是类型系统中的危险 “应急方案”。使用 any
会禁用许多类型检查规则,通常最好只作为最后的手段或在原型代码时使用。
¥The any
type in TypeScript is a dangerous “escape hatch” from the type system.
Using any
disables many type checking rules and is generally best used only as a last resort or when prototyping code.
TypeScript 的 --noImplicitAny
编译器选项可防止隐含的 any
,但不会阻止 any
按照此规则的方式显式使用。
¥TypeScript’s --noImplicitAny
compiler option prevents an implied any
,
but doesn’t prevent any
from being explicitly used the way this rule does.
有时你可以使用类型 unknown
而不是类型 any
。它还接受任何值,但是需要在调用属性之前检查属性是否存在。
¥Sometimes you can use the type unknown
instead of the type any
.
It also accepts any value, however it requires to check that a property exists before calling it.
¥Examples
¥Invalid
code-block.ts:1:15 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Unexpected any. Specify a different type.
> 1 │ let variable: any = 1;
│ ^^^
2 │
ℹ any disables many type checking rules. Its use should be avoided.
code-block.ts:2:25 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Unexpected any. Specify a different type.
1 │ class SomeClass {
> 2 │ message: Array<Array<any>>;
│ ^^^
3 │ }
4 │
ℹ any disables many type checking rules. Its use should be avoided.
code-block.ts:1:26 lint/suspicious/noExplicitAny ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✖ Unexpected any. Specify a different type.
> 1 │ function fn(param: Array<any>): void {}
│ ^^^
2 │
ℹ any disables many type checking rules. Its use should be avoided.
¥Valid
¥Related links