TypeScript を書いていると、tsconfig.json
を変更したのに何故かその設定が tsserver に読み込まれないとか、vscode-eslint に変更が通知されずに古い型情報を使って lint し続けているとか、そういうことが多々ある。大体 VSCode を再起動すれば解決するのだけど、手間だし遅いし計算資源が勿体ない…
という訳でここでは僕が普段使っている再起動以外の workaround をいくつか紹介する。
F1 > Developer: Restart extension host
日本語だと「開発者: 拡張機能のホストを再起動」という項目。これを実行するとユーザがインストールした拡張機能や VSCode に bundle されている拡張機能 *1 を再起動することができる。全拡張機能の再起動するのでそこそこコストが掛かるけど、殆どのケースで問題が解決するし、VSCode 内で完結するので再起動よりはずっとお手軽。
F1 > TypeScript: Restart TS server
日本語だと「TypeScript: TS サーバーを再起動」。tsserver を再起動できる。VSCode 上に表示される TypeScript のエラーがおかしい時は、大体これを試せば解決する。1つ注意すべき点があって、TypeScript ファイルをカレントタブで開いていないと TypeScript: Restart TS server
という項目が出てこない。もし F1 のメニューに TypeScript: Restart TS server
が出てこなくて困っていたら、ちゃんとカレントタブで TypeScript ファイルを開いているか、をチェックすると良い。
tsconfig.json
をカレントタブで開いて上書き保存する
tsconfig.json
を保存すると tsserver が tsconfig.json
を再読み込みしてくれるようになってるっぽくて、これだけで解決することもある。
.eslintrc
をカレントタブで開いて上書き保存する
tsconfig.json
の vscode-eslint 版。
*1:Git の拡張機能や tsserver client など