360
152

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TypeScript on ESLint の未来

Last updated at Posted at 2019-01-19

ESLintTypeScript サポートの今後について、公式にアナウンスがありました

要点をまとめると、

  1. TypeScript チームが TSLint から ESLint に切り替えていくと発表したよ。
  2. ESLint チームと TypeScript チームが協力して開発を進める場として、typescript-eslint プロジェクトを開始したよ。
  3. 既存の部品は新しいプロジェクトの org に移動するよ (typescript-eslint-parser@typescript-eslint/parser になる、等)。

という感じです。

以下は公式アナウンスの翻訳です。


数週間前、TypeScript チームは、ESLint を正式に採用し、ESLint に対する TypeScript の互換性を改善するための作業を説明したロードマップを共有しました。

Linting について

  • ESLint の検証ルール
    • TSLint と同等のこと
    • 性能と安定性
  • ESLint のエディタ統合機能

私たちが数ヶ月前に VS Code で行った調査で、ユーザーが Linting について不満に思っていることが分かりました。私たちのチームの一部は JavaScript の編集体験の改善に打ち込んでいる (訳注: TypeScript は JavaScript ファイル上での入力補完をサポートしている) ので、私たちのエディタ チームは TSLint と ESLint の両方をサポートするための作業を開始しました。しかし、TSLint には性能に関するアーキテクチャ上の問題があることに気がつきました。TSLint をより効率的に動作するよう修正するには、既存の検証ルールが動作しなくなるような API の変更が必要です。 (wotan が提供するような互換 API を提供しない限り)。

一方で、ESLint は既に効率的なアーキテクチャを有しています。さらに、さまざまなユーザー コミュニティが ESLint 用に構築された検証ルール (React Hooks や Vue など) を持っていますが、TSLint にはありません。

これらのことから、私たちのエディタ チームは (両方ではなく) ESLint を活用することに焦点を当てることにしました。 ESLint が現在サポートしていないシナリオ (例えば 意味論の検証や program-wide な検証) のために、ESLint の TypeScript サポートを TSLint と同等にするための貢献を進めます。これが実際にどのように機能するかの最初の試行として、TypeScript リポジトリで ESLint を利用し、作成した検証ルールを上流 (訳注: eslint-plugin-typescript だと思う) に送ります。

https://github.com/Microsoft/TypeScript/issues/29288

私たちは、多くの JavaScript および TypeScript コミュニティと同じように、この発表に非常に興奮しました。 ここ数年で、James Henry、Kai Cataldo、Kevin Partington、長島 徹 (訳注: ←私)、Nicholas Zakas など、ESLint チームの一部が TypeScript の互換性の向上に取り組んできました。その作業は、主に TypeScript 構文解析器である typescript-eslint-parser の開発でした。また、TypeScript 向けの追加ルール集である eslint-plugin-typescript は (ESLint チームがサポートしていた訳ではありませんが) 最近まで Nicholas と James によって保守されていました。これらが TypeScript-in-ESLint の話題の中心的存在として、適切に扱われることを確実にしたいと考えました。

typescript-eslint プロジェクトの発表

James Henry (ESLint の TypeScript サポート開発のリーダー) は typescript-eslint プロジェクトを開始しました。これは、今まで複数のリポジトリに分散して管理されていた TypeScript-in-ESLint 関連プロジェクト (訳注: typescript-estree, typescript-eslint-parser, and eslint-plugin-typescript) の包括的な開発拠点になります。

ESLint チームは正式には新しいプロジェクトに関与しませんが、私たちは James の努力を全面的に支持し、TypeScript 開発者にとって最高の ESLint 体験を確実にするために、このプロジェクトをサポートし続けます。

どのように変わるか

  1. typescript-eslint-parser は破棄されます。

    代わりに @typescript-eslint/parser を利用してください。
  2. TypeScript サポートがどのように行われるかに興味のある方は、typescript-eslint リポジトリをフォローしてください。

私たちは TypeScript コミュニティと ESLint コミュニティの協調を歓迎し、James と typescript-eslint チームがどのように ESLint を TypeScript コードの作成に最適な選択肢にしてくれるかを楽しみにしています。

360
152
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
360
152

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?