TSLint 普段使っている最小限の設定
プライベートで何か作ったりするときの TSLint config についてまとめておく。
tslint.json
{ "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"], "linterOptions": { "exclude": [ "config/**/*.js", "node_modules/**/*.ts", "coverage/lcov-report/*.js" ] }, "rulesDirectory": ["tslint-plugin-prettier"], "rules": { "no-default-export": true, "interface-name": false, "ordered-imports": true, "jsx-no-lambda": false, "object-literal-sort-keys": false, "prettier": true } }
rules
create-react-app のデフォルトからあまり触っていないが、以下の rules を弄っている。
- no-default-export: named export を強制するため true にしている
- interface-name: 大文字 I から始まる interface 名を禁止
- ordered-imports: インポート順をアルファベット順にして探しやすいように true
- jsx-no-lambda: Query Component pattern などで使うので false
- object-literal-sort-keys: object の key はアルファベット順よりも重要度で並べたり、分類ごとにまとめたりしたいので false
- prettier: tslint-plugin-prettier をインストール(
$ yarn add -D tslint-plugin-prettier
)し"rulesDirectory": ["tslint-plugin-prettier"]
を追加して true にするとプロジェクトの.prettierrc(.json)
が効くようになる
メンバーの多いプロジェクトでは、さらに必要に応じてrulesを追加したり無効化したりする