JSPM

  • Created
  • Published
  • Downloads 2488773
  • Score
    100M100P100Q204078F
  • License MIT

Airbnb's ESLint config with TypeScript support

Package Exports

  • eslint-config-airbnb-typescript/lib/shared

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-config-airbnb-typescript) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

eslint-config-airbnb-typescript

Airbnb's ESLint config with TypeScript support

Works with both JS and TS files.

I use eslint-config-airbnb (with React support)

Install dependencies. ESLint plugins must also be installed.

npm install eslint-config-airbnb-typescript \
            eslint-plugin-import@^2.22.0 \
            eslint-plugin-jsx-a11y@^6.3.1 \
            eslint-plugin-react@^7.20.3 \
            eslint-plugin-react-hooks@^4.0.8 \
            @typescript-eslint/eslint-plugin@^3.6.1 \
            --save-dev

Within your ESLint config file:

module.exports = {
  extends: ['airbnb-typescript'],
  parserOptions: {
    project: './tsconfig.json',
  },
};

Alter your eslint command to include ts and tsx files:

eslint --ext .js,.jsx,.ts,.tsx ./

I use eslint-config-airbnb-base (no React support)

Install dependencies. ESLint plugins must also be installed.

npm install eslint-config-airbnb-typescript \
            eslint-plugin-import@^2.22.0 \
            @typescript-eslint/eslint-plugin@^3.6.1 \
            --save-dev

Within your ESLint config file:

module.exports = {
  extends: ['airbnb-typescript/base'],
  parserOptions: {
    project: './tsconfig.json',
  },
};

Alter your eslint command to include ts and tsx files:

eslint --ext .js,.jsx,.ts,.tsx ./

I wish this config would support [...]

The goal of eslint-config-airbnb-typescript is decorate eslint-config-airbnb with TypeScript support. All rules and settings are identical. It's a drop-in replacement for eslint-config-airbnb, including linting for JavaScript files.

It's recommended to alter your ESLint config for additional functionality. Here's an example:

{
  "extends": [
    "airbnb-typescript",
    "airbnb/hooks",
    "plugin:@typescript-eslint/recommended",
    "plugin:@typescript-eslint/recommended-requiring-type-checking"
  ],
}

My personal ESLint config file with support for Jest, Promises, and Prettier can be found in create-exposed-app.

Additional Documentation

Credits

Authored and maintained by Matt Turnbull (iamturns.com / @iamturns)

To all contributors (if you exist) - thank you!

License

Open source licensed as MIT.