0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

eslint.config.mjsのparserOptions.projectとは?

Posted at

はじめに

TypeScript を使っていると、ESLint の設定の中で

parserOptions.project という項目を見かけることがあります。

しかし、

  • これは何のための設定なのか?
  • true にすると急にエラーが増えるのはなぜか?
  • どんなときに必要で、どんなときは不要なのか?

と疑問に思う方は多いと思います。

結論から言うと、parserOptions.project
ESLint に「TypeScript の型情報を読ませるためのスイッチ」です。
これを有効にすると、通常の JavaScript だけでは検知できない

  • 型の間違い
  • Promise の誤った扱い
  • null/undefined 判定のミス

といったバグを、ESLint が検出できるようになります。


この記事では、

  • parserOptions.project が具体的に何をしているのか
  • 有効化すると lint がどう強力になるのか
  • 実際に動く代表的な lint ルール
  • それぞれのルールがどんなバグを防いでくれるのか

を、初学者向けにわかりやすく解説します。

「TypeScript の型チェック lint をもっと活用したい」

「ESLint の設定がよくわからないまま使っている」

という方の参考になれば幸いです。


対象読者

  • eslint.config.mjsのparserOptions.project が具体的に何をしているのか理解を深めたい方

代表的な ESLint ルール4つと実例

🔹 1. no-unnecessary-type-assertion(不要な型アサーション禁止)

意味

TypeScript がすでに型を理解できているのに、

as string のような 不要な型アサーションを書いてしまうミスを防ぐルール。

const name = "John" as string; // ← TypeScriptがstringと推論できるので不要

メリット

  • 無駄な as を減らせる
  • 型の意図がより明確になる

🔹 2. no-misused-promises(Promise の誤使用を検出)

意味

Promise を 真偽値として使う など、誤った使い方を防ぐルール。

間違った例

if (fetchData()) { ... } // fetchData() は Promise!true/false にはならない

メリット

  • 非同期処理のバグを早期に防げる
  • Promise の扱いミスにすぐ気づける

※ JSX の onClick={() => ...} などは今回の設定で許可済み。


🔹 3. prefer-nullish-coalescing(?? を優先して使う)

意味

|| より安全な ?? を使うことを推奨するルール。

(null / undefined のときだけ補完される)

const value = input || "default"; // 0 や "" でも defaultになってしまう
const value = input ?? "default"; // null/undefined のときだけ default

メリット

  • 0 や空文字を意図せず「false扱い」してしまうバグを防げる
  • 意図した値補完ができる

🔹 4. no-floating-promises(放置された Promise を禁止)

意味

Promise を await せずに放置すると、エラーが握りつぶされてしまう。

これを防ぐルール。

悪い例

fetchData(); // ← 何も待たず、エラーも拾わずで危険

正しい例

await fetchData();

または

fetchData().catch(handleError);

メリット

  • 非同期処理のエラーを確実に処理できる
  • 意図しないタイミングでコードが進むバグを防止

まとめ

  • parserOptions.projectESLint に TypeScript の型情報を読ませる設定
  • 有効にすると “型を理解した lint” が動くようになる
  • その結果、
    • Promise の扱い

    • null / undefined 判定

    • 不要な型アサーション

    • 放置された非同期処理

      など、実務でよく起こるバグを自動で防げる

TypeScript をしっかり活かしたいなら、
parserOptions.project の理解は避けて通れない重要ポイントです。

最後に

記事を読んでくださった方は、是非弊社開発課のXもフォローしてください。
毎日エンジニアに向けた情報発信を行っています。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?