Provides typescript integration with ESLint for neutrino projects.
ESLint replaces TSLint for linting TypeScript.
Existing JavaScript rules will be converted to support TypeScript, so you can combine this with base configurations such as airbnb easily. See below for full details.
This package is intended for use with neutrinojs-typescript,
and any eslint
module (e.g. @neutrino/eslint
/ @neutrino/airbnb
/ etc.),
so you should already have those installed and configured.
-
Install dependencies:
npm install --save-dev neutrinojs-typescript-eslint
-
Include in
.neutrinorc.js
:const typescriptLint = require('neutrinojs-typescript-eslint'); // ... module.exports = { use: [ typescript(), // must be first in use section typescriptLint(), // order does not matter; can be later eslint(), // or airbnb or any other eslint-based module node(), // or whichever target you are using ], };
-
Include type checking in
package.json
scripts:{ "scripts": { "lint": "eslint --format codeframe --ext mjs,jsx,js,tsx,ts src test && tsc" } }
Note: if you are using eslint 7 or above, you can simplify the lint script:
{ "scripts": { "lint": "eslint --format codeframe src test && tsc" } }
// default values shown
typescriptLint({
// file patterns where TypeScript rules are applied
typescriptFiles: ['*.ts', '*.tsx'],
// add "plugin:@typescript-eslint/recommended"
recommended: true,
// convert "indent" to "@typescript-eslint/indent"
indent: false,
})
Note that indent
is false
by default due to
known issues with @typescript-eslint/indent.
Any unrecognised options are passed through to typescript-eslint-converter
.
This uses typescript-eslint-converter to automatically convert Javascript rules to be TypeScript compatible.
All conversions only apply if an equivalent explicit configuration is not found.