@aerian/eslint-config-typescript

This is a sharable ESLint config for TypeScript. The base config is NO LONGER included by default, so you will need to include it in most cases

Usage no npm install needed!

<script type="module">
  import aerianEslintConfigTypescript from 'https://cdn.skypack.dev/@aerian/eslint-config-typescript';
</script>

README

@aerian/eslint-config-typescript

This is a sharable ESLint config for TypeScript. The base config is NO LONGER included by default, so you will need to include it in most cases

This isn't meant to be used on its own. If you're using plain TypeScript add @aerian/eslint-config. Alternatively, if you're using React, use @aerian/eslint-config-react. If you're using Preact, use @aerian/eslint-config-preact. If you need node, use @aerian/eslint-config-node

To install, run:

#npm
npm i -D eslint prettier @aerian/eslint-config @aerian/eslint-config-typescript

#yarn
yarn add -D  eslint prettier @aerian/eslint-config @aerian/eslint-config-typescript

To use it, create the following .eslintrc.json:

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

also see config for mono-repos: https://github.com/typescript-eslint/typescript-eslint/blob/master/docs/getting-started/linting/MONOREPO.md

The base formatting uses Prettier, which parses and reformats your code. It runs this through ESLint, so you can run use eslint . --fix to apply Prettier formatting as well as ESLint rules.

By default, the VSCode ESLint plugin doesn't handle TypeScript. To fix this, add something like the following to your user or workspace settings:

{
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
        "source.fixAll": true
    },
    "eslint.validate": [
        "javascript",
        "javascriptreact",
        "typescript",
        "typescriptreact"
    ],
    "[javascript]": {
        "editor.formatOnSave": false
    },
    "[javascriptreact]": {
        "editor.formatOnSave": false
    },
    "[typescript]": {
        "editor.formatOnSave": false
    },
    "[typescriptreact]": {
        "editor.formatOnSave": false
    },
    "eslint.lintTask.enable": true,
    "[json]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    }
}