VSCodeをアップデートしたら急にこんなエラーが出るようになった。。
TypeScript4.4からcatchの変数はunknownにするオプションが
デフォルトでtrueになったららしい。。
TypeScript: TSConfig Reference - Docs on every TSConfig option
Announcing TypeScript 4.4 - TypeScript
try { executeSomeThirdPartyCode(); } catch (err) { // err: unknown // Error! Property 'message' does not exist on type 'unknown'. console.error(err.message); // Works! We can narrow 'err' from 'unknown' to 'Error'. if (err instanceof Error) { console.error(err.message); } }
ちゃんと型チェックしてねってことらしいけど、急なので困る。。
対処法1: TypeScriptのバージョンを合わせる
そもそもワークスペースとVSCodeのTypeScriptのバージョンがあってなかった。。
.ts
ファイルを開くと右下にバージョンが出るのでクリック。
すると、バージョンを変更するメニューが出る。
ワークスペースと同じバージョンを利用するように変更
すると、設定ファイル(.vscode/settings.json
)に以下が追記される。
// .vscode/settings.json { "typescript.tsdk": "node_modules/typescript/lib" }
変更すると、同じバージョンになるので、エラーが解消される!
対処法2: useUnknownInCatchVariablesを無効にする
ワークスペースのバージョンも4.4だとだめだけど
tsconfig.json
自体のオプションを変更すればOK
{ "compilerOptions": { "useUnknownInCatchVariablesを無効にする": false, // ... }, // ... }
以上!!