Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@lego/eslint-config-typescript

LEGO95MIT9.4.1TypeScript support: included

LEGO shareable eslint config for js projects

eslint, eslint-config, eslint-config-typescript, typescript

readme

@lego/eslint-config-typescript

Installation

Install this config package:

$ npm i -D @lego/eslint-config-typescript

Important Note

If your editor supports automatic import sorting and culling of unused imports, prettier might clash with that, especially in vscode.

read more on:

therefore ensure that your vscode has the following combination of flags enabled:

{
  ...
  // Editor
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true,
    "source.fixAll.stylelint": true,
    "source.organizeImports": false
  },
  "editor.formatOnSave": false,
  ...
}

Usage

Extend your eslint.json, and make sure @lego/eslint-config-typescript has been added.

{
  "extends": ["@lego/eslint-config-typescript"]
}

with TypeScript & React & Prettier:

{
  "extends": [
    "@lego/eslint-config-typescript",
    "@lego/eslint-config-react",
    "@lego/eslint-config-prettier"
  ]
}

Overriding Rules

With the above eslint.json configuration example, you can still use or override already defined rules as such:

{
  "extends": [
    "@lego/eslint-config-typescript",
    "@lego/eslint-config-react",
    "@lego/eslint-config-prettier"
  ],
  "rules": {
    // eslint-config rules
    "camelcase": "warn",

    // @typescript-eslint/eslint-plugin rules
    "@typescript-eslint/no-useless-constructor": "error",

    // eslint-plugin-react rules
    "react/jsx-child-element-spacing": "error",

    // eslint-plugin-react-hooks rules
    "react-hooks/exhaustive-deps": "warn",

    // eslint-plugin-prettier rules
    "prettier/prettier": [
      "error",
      {
        "singleQuote": false
      }
    ]
  }
}

It's recommended to inspect the defined rule's configurations where the reasoning for the configuration lives. If a configuration could benefit more than just the project you're working on, feel free to create a pull request.