description |
---|
Disallow usage of the implicit `any` type in catch clauses. |
🛑 This file is source code, not the primary documentation location! 🛑
See https://typescript-eslint.io/rules/no-implicit-any-catch for documentation.
TypeScript 4.0 added support for adding an explicit any
or unknown
type annotation on a catch clause variable.
By default, TypeScript will type a catch clause variable as any
, so explicitly annotating it as unknown
can add a lot of safety to your codebase.
The noImplicitAny
flag in TypeScript does not cover this for backwards compatibility reasons, however you can use useUnknownInCatchVariables
(part of strict
) instead of this rule.
This rule requires an explicit type to be declared on a catch clause variable.
Examples of code for this rule:
try {
// ...
} catch (e) {
// ...
}
try {
// ...
} catch (e: unknown) {
// ...
}
The rule accepts an options object with the following properties:
type Options = {
// if false, disallow specifying `: any` as the error type as well. See also `no-explicit-any`
allowExplicitAny: boolean;
};
const defaults = {
allowExplicitAny: false,
};
The follow is is not considered a warning with { allowExplicitAny: true }
try {
// ...
} catch (e: any) {
// ...
}
If you are not using TypeScript 4.0 (or greater), then you will not be able to use this rule, annotations on catch clauses is not supported.