環境構築
Parsing error: Unexpected token (ESLint)
ESLintがコードを解析できない
こんな症状
ESLintに「Parsing error: Unexpected token」と言われる。コードのバグではなく、ESLint側の設定(パーサーや対応する構文のバージョン)が追いついていないのが原因のことが多いよ。
まず試す
TypeScriptなら @typescript-eslint/parser を入れて parser に指定。新しい構文なら ecmaVersion を latest にする。
env
// eslint.config.js(flat config)の例
import tsParser from "@typescript-eslint/parser";
export default [
{
files: ["**/*.ts", "**/*.tsx"],
languageOptions: { parser: tsParser },
},
];これで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓TypeScript / JSX を解析しようとした
→ @typescript-eslint/parser を入れて parser に指定。JSXは ecmaFeatures: { jsx: true } を足す。 - ✓?. など新しい構文でエラー
→ parserOptions の ecmaVersion を latest にする。 - ✓import/export を使っている
→ sourceType を module に設定する。
なぜ起きる?
ESLintのパーサー設定が、書いているコードの構文に対応していないよ。よくあるのは3つ。(1) TypeScript(.ts/.tsx)やJSXを、デフォルトのJavaScript用パーサーで解析しようとしている。 (2) 設定のecmaVersionが古くて、?.(オプショナルチェーン)など新しい構文を知らない。 (3) import/exportを使っているのにsourceTypeがmoduleになっていない。つまり「コードが間違っている」のではなく「ESLintの設定がコードに追いついていない」ケースが大半だよ。ただし本当に構文ミス(括弧の閉じ忘れ等)の場合もあるので、エラー位置のコードも一応確認しよう。
✕ エラーが起きるコード
$ npx eslint src/app.ts
# Parsing error: Unexpected token :
# (デフォルトパーサーはTypeScriptの型注釈を解析できない)✓ 直したコード
// eslint.config.js(flat config)の例
import tsParser from "@typescript-eslint/parser";
export default [
{
files: ["**/*.ts", "**/*.tsx"],
languageOptions: { parser: tsParser },
},
];✅ 直ったか確認
npx eslint が Parsing error を出さずに実行できればOK。
🆘 まだ直らないときは
本当に構文ミス(括弧の閉じ忘れ等)の可能性もある。エラー位置のコードも確認しよう。flat config と .eslintrc は書き方が違う点にも注意。
Q&Aで質問する →この解決法は役立ちましたか?
🔗 関連するエラー
- error: failed to push some refs — pushが拒否された
- fatal: unable to access — リモートリポジトリに接続できない
- VS Codeの拡張機能が動かない・反映されない — 再起動・有効化・追加設定のどれかが足りていない
- Live Serverが起動しない — Live Server 拡張機能が正しく動作していない
- Permission denied (publickey) — SSH鍵が設定されていない
📖 この問題を学べるレッスン
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- VS Codeのインストール方法 — インストールと初期設定を図解で解説
- プログラミング初心者が最初にやるべきこと5選 — 目的を決めて環境構築から