any
type in catch clauses (no-implicit-any-catch
)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.
This rule requires an explicit type to be declared on a catch clause variable.
The following pattern is considered a warning:
try { // ... } catch (e) { // ... }
The following pattern is not considered a warning:
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, };
allowExplicitAny
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.