数時間持ってかれたので備忘録代わりに。
TL;DR
vscodeでnodejsプロジェクトを扱うときはちゃんとワークスペースのtypescriptのバージョンを使うこと。
経緯
vscode拡張機能を作成中、以下に遭遇。
前提として、package.jsonを弄ってパッケージの整理をしていた。
1.vsce package
で以下のエラーが出る。
tsconfig.json:13:3 - error TS5023: Unknown compiler option 'ignoreDeprecations'.
13 "ignoreDeprecations": "5.0",
~~~~~~~~~~~~~~~~~~~~
そんなオプションないよって言われてる。
2.tsconfig.jsonでは以下の画像のようなエラー。ignoreDeprecations:5.0
を追加しろと言われる。
何があったのか?
どうやら、vsce package
に使っているtypescriptのバージョンとvscodeで使っているtypescriptのバージョンが異なっていた。
vscodeのtsバージョンは画像の手順で確認可能。
おそらくnode_moduleの削除などをやっているうちにvscodeで使うtsのバージョンがワークスペースのものからvscodeのバージョンへと変わってしまった。
ts5.0以降ではsuppressImplicitAnyIndexErrorsでエラーがでるが、4.9.4だと警告が出ない(そのためignoreDeprecationsも存在しない)ため、エラーが出たっぽい。
vscodeでnodejsプロジェクトを扱うときはちゃんとワークスペースのtypescriptのバージョンを使うこと。