Code Inspections in TypeScript
Inspection | Description | Default Severity |
---|---|---|
Equality operator may cause type coercion | Reports usages of equality operators which may cause unexpected type coercions.It is considered a good practice to use the type-safe equality operators === and !==instead of their regular counterparts == and !=. Depending on the option selected, this will either highlight:
| |
Type mismatch | Checks that TypeScript called function parameters, return values, assigned expressions are of the correct type. | Error |
Type mismatch in 'any' type context | Checks TypeScript called function parameters, return values, assigned expressions to be of correct type in any type context. | Weak warning |
Unresolved JavaScript variable | Checks that TypeScript referenced variables and fields are valid. | Weak warning |
Validate imports | Validate TypeScript imports. | Error |
Unresolved JavaScript function | Checks that TypeScript called functions are valid. | Weak warning |
@private and @protected members accessibility | Checks that TypeScript private and protected members are visible in current context. | Weak warning |
Import can be shortened | Reports ES6 imports whose from part can be shortened by importing the parent directory. | Warning |
Reference to a UMD global | Report the use of references to a UMD global if the current file is a module. | Weak warning |
Field is assigned only in the constructor and can be made readonly | If a private field is assigned only in the constructor, it can be made readonly. | Weak warning |
Missing augmentation import | Checks that current file imports the augmentation module. | Info |
Explicit member types | Highlights type declarations that do not match the current code style. By default, type declarations are highlighted as redundant when the type can be inferred from context, for example: Highlights type declarations that do not match the current code style. Highlights type declarations that do not match the current code style. Enabling any of the options below inverts this and suggests inserting an explicit type declaration even where the type can be inferred. | Info |
Variable type is narrowed by a type guard | Highlights variable usages where variable type is narrowed by a type guard.Note that severity level doesn't affect this inspection. | Warning |
Validate tsconfig.json | Validate usages of tsconfig.json properties. | Warning |
Required TypeScript library is not included in tsconfig.json | Checks that the TypeScript library files required for the symbol are listed under the 'lib' compiler option in tsconfig.json. | Error |
Suspicious parameter assignment in constructor | Warns against a common mistake in TypeScript code, when a class field is declared as a constructor parameter, and then this parameter is assigned. | Warning |
Abstract class constructor can be made protected | Suggests to make the constructor of an abstract class protected (because it is useless to have it public). | Weak warning |
TSLint | Runs TSLint - a linter for TypeScript. |