ねむねむ

Reactプロジェクトにtypescript-eslintを導入

Getting Started - Linting your TypeScript Codebase
ここに書いてあることを参考にしつつ自分のプロジェクトに必要なものを足していく。

必要なパッケージ

ついでに導入したパッケージ

.eslintrc.js

module.exports = {
  parser: "@typescript-eslint/parser",
  plugins: ["@typescript-eslint", "react", "react-hooks", "jsx-a11y"],
  extends: [
    "eslint:recommended",
    "plugin:react/recommended",
    "plugin:jsx-a11y/recommended",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:prettier/recommended",
    "prettier/@typescript-eslint"
  ],
  env: { browser: true, es6: true },
  parserOptions: {
    ecmaFeatures: {
      jsx: true
    }
  },
  rules: {
    "react/prop-types": "off",
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn"
  }
};

react/prop-types は TypeScript 側でチェックしているので不要。
@typescript-eslint/explicit-function-return-type など制約がキツイ場合は適宜ルールをオフにするといいと思う。

npm scripts の追加

{
  "scripts": {
    "lint": "eslint src/**/*.{ts,tsx}"
  }
}

その他

eslint-config-airbnb-typescripteslint-config-standard-with-typescript もあるので、好みに応じてそれらをベースにするとよさそう。


Share this:
このエントリーをはてなブックマークに追加