編集

typescript-eslint v8

ESLint v9 をサポートした typescript-eslint v8 が 2024 年 7 月 31 日にリリースされた。

https://typescript-eslint.io/blog/announcing-typescript-eslint-v8

ESLint v9 対応をする上で、typescript-eslint v8 のリリースを持っていた ESLint plugin も複数あり、ESLint v9 対応がより前進するのではないかと思われる。 少なくとも React + TypeScript 環境では、ライブラリやフレームワーク用の ESLint plugin を除けば、ESLint v9 を利用できる環境が整った。

#projectServiceの安定化

ほぼprojectの上位互換であるprojectServiceが安定板になった。projectServiceは、内部的に VSCode などのエディタが利用している TypeScript API を利用しており、編集中に見ているもの異なる結果を表示することが減るとされている。

後日この機能について記事が書かれるとのこと。

https://github.com/typescript-eslint/typescript-eslint/pull/8031

#ルールの削除や変更

@typescript-eslint/ban-typesが削除され、用途に合わせて次の新しいルールを利用するようになった。

  • @typescript-eslint/no-restricted-types
  • @typescript-eslint/no-empty-object-type
  • @typescript-eslint/no-unsafe-function-type
  • @typescript-eslint/no-wrapper-object-types

自分で特定の型を禁止するルールを書いていた場合は、@typescript-eslint/no-restricted-typesを利用すれば良い。他にも非推奨なルールの削除や非推奨化が行われている。

またルールだけでなくプリセットも変更されているため、ルールを何もカスタマイズせずに利用していた場合でも、対応が必要だと思われる。詳しい変更箇所は次のリンクを参照。

https://typescript-eslint.io/blog/announcing-typescript-eslint-v8/#updated-configuration-rules

編集