TypeScript support for ESLint. (This is still in the very early stages, so please be patient.)
The below readme is for the upcoming 1.0.0 release. Please see this tag for the current NPM version (0.14.0)
You'll first need to install ESLint:
$ npm i eslint --save-dev
Last, install eslint-plugin-typescript
:
$ npm install eslint-plugin-typescript --save-dev
Note: If you installed ESLint globally (using the -g
flag) then you must also install eslint-plugin-typescript
globally.
Add eslint-plugin-typescript/parser
to the parser
field and typescript
to the plugins section of your .eslintrc
configuration file. You can omit the eslint-plugin-
prefix:
{
"parser": "eslint-plugin-typescript/parser",
"plugins": ["typescript"]
}
Then configure the rules you want to use under the rules section.
{
"rules": {
"typescript/rule-name": "error"
}
}
Note: The plugin provides its own version of the typescript-eslint-parser
via eslint-plugin-typescript/parser
.
This guarantees 100% compatibility between the plugin and the parser.
typescript/adjacent-overload-signatures
— Require that member overloads be consecutivetypescript/ban-types
— Enforces that types will not to be used (ban-types
from TSLint)typescript/camelcase
— Enforce camelCase naming conventiontypescript/class-name-casing
— Require PascalCased class and interface names (class-name
from TSLint)typescript/explicit-function-return-type
— Require explicit return types on functions and class methodstypescript/explicit-member-accessibility
— Require explicit accessibility modifiers on class properties and methods (member-access
from TSLint)typescript/generic-type-naming
— Enforces naming of generic type variablestypescript/interface-name-prefix
— Require that interface names be prefixed withI
(interface-name
from TSLint)typescript/member-delimiter-style
— Require a specific member delimiter style for interfaces and type literalstypescript/member-naming
— Enforces naming conventions for class members by visibility.typescript/member-ordering
— Require a consistent member declaration order (member-ordering
from TSLint)typescript/no-angle-bracket-type-assertion
— Enforces the use ofas Type
assertions instead of<Type>
assertions (no-angle-bracket-type-assertion
from TSLint)typescript/no-array-constructor
— Disallow genericArray
constructorstypescript/no-empty-interface
— Disallow the declaration of empty interfaces (no-empty-interface
from TSLint)typescript/no-explicit-any
— Disallow usage of theany
type (no-any
from TSLint)typescript/no-inferrable-types
— Disallows explicit type declarations for variables or parameters initialized to a number, string, or boolean. (no-inferrable-types
from TSLint)typescript/no-namespace
— Disallow the use of custom TypeScript modules and namespacestypescript/no-non-null-assertion
— Disallows non-null assertions using the!
postfix operator (no-non-null-assertion
from TSLint)typescript/no-parameter-properties
— Disallow the use of parameter properties in class constructors. (no-parameter-properties
from TSLint)typescript/no-triple-slash-reference
— Disallow/// <reference path="" />
comments (no-reference
from TSLint)typescript/no-type-alias
— Disallow the use of type aliases (interface-over-type-literal
from TSLint)typescript/no-unused-vars
— Prevent TypeScript-specific constructs from being erroneously flagged as unusedtypescript/no-use-before-define
— Disallow the use of variables before they are definedtypescript/no-var-requires
— Disallows the use of require statements except in import statements (no-var-requires
from TSLint)typescript/prefer-namespace-keyword
— Require the use of thenamespace
keyword instead of themodule
keyword to declare custom TypeScript modules. (no-internal-module
from TSLint)typescript/type-annotation-spacing
— Require consistent spacing around type annotations