}}eslint:recommendedのところはベースにするお好みのESLint用のconfigを指定する。airbnbでもオレオレconfigでも良い。plugin:prettier/recommendedは、Prettierと競合するルールを自動で無効にしつつ、ESLintの中でPrettierを動くようにしてくれる便利設定。ここまではTypeScript関係ない。parserがTypeScript用の設定。ecmaVersionは不要。projectは後述。Reactやる人はjsx:trueを追加。詳細はparserのREADMEを参照。あとはrulesを定義していけばOK。plugin:@typescript-eslint/recommendedを使えば多少行数減るのだけど、前述したように余計なTypeScript用のルールを追加したくないので個人的にはやらない。Tipsいろいろ雑に書いていきます。見るべしTSLintのあのルールはESLintでは何?実装状況は?どのルール使えば良い?というとき、@typescript-eslint/eslint-pluginのREADMEを見てもルールがアルファベット順に並んでるだけで微妙。実は、TSLintや各種プラグインも含めた網羅性のあるルール対照表がこっそりとROADMAP.mdというファイルに記載されている。現時点ではこれが最重要ドキュメント。typescript-eslint/typescript-eslintTypeScript固有のルールについては、これを見ながらTypeScript-specificというところから好きなルールを選んでいく感じになる。前述したように個人的にはここでそんなに縛る必要はないと思っていて、面倒な人は何も指定しなくても良いと思う。assertionを修正するno-unnecessary-type-assertionぐらいか?上書きされるESLintルールを無効にESLint本家のルールは思いのほかTypeScriptでも順調に動くものの、いくつかはTypeScriptでは期待通りに動かないルールがある。positiveな誤検知をしてしまうケースがある。そこで@typescript-eslint/eslint-pluginではそのような本家ルールをTypeScriptでもうまく動くように修正版ルールを定義している。@typescript-eslint/camelcase@typescript-eslint/indent@typescript-eslint/no-array-constructor@typescript-eslint/no-unused-vars@typescript-eslint/no-use-before-define@typescript-eslint/no-useless-constructor注意点として、これらのESLint本家版ルールを有効にしている場合(例えばeslint:recommendedを使っている場合はno-unused-varsが有効)は、以下のように一度無効にしてからTypeScript版を有効にする必要がある。修正版は本家とは別のルールとして定義されているので、本家を無効にしないとエラーが重複して報告されてしまうため。オプションを指定してる場合はその再指定も忘れずに。"error"}plugin:@typescript-eslint/recommendedの中でも同様の設定がされている。この上書きルールリストは提供されてない(上のは自分でスクリプトを書いて生成した)し、手動も辛いので自動でいい感じになってほしい。このあたりをwatchしとく。定番プラグインeslint-plugin-nodeの便利ルール、node/no-missing-import等はデフォルトでは拡張子.tsのファイルを見てくれないのでエラーが誤検知されてしまう。そんなこともあろうかとtryExtensionsオプションが用意されているので追加してあげればOK。settingに書くと同種のルールに一括適用できるので便利。Reactやる人は.tsxも追加しておく。"error"}no-dupe-class-membersを無効にTypeScriptでメソッドオーバーロードすると誤検知されてしまうため。これもいい感じになんとかしてほしい気持ち。issue登録しといた。冒頭に追記した通り、現状ではprojectを有効にすると極端にパフォーマンスが落ちるので注意。個人的にはそこまでの価値を見出せてないので利用をやめました。