vue-tsc
なるものを使うとSFC内のtemplate部分も含めて型チェックを行えて便利っぽいようなので使い方とかをメモ
vue-tsc
とは?
vue-tsc
とはVeturの後継であるVolar
内で管理されているライブラリです。
vue-tsc Type-check and dts build command line tool
上記の通りSFC内のテンプレートを含めた型チェックを行うことができます。
vue-tsc
の使い方
インストール
以下でinstallします📦
# yarn yarn add -D vue-tsc # npm npm i vue-tsc -D
tsconfig.jsonの設定
以下のVue.jsの公式ドキュメントに記載されている推奨設定をもとにtsconfig.json
を修正します。
{ "compilerOptions": { "target": "esnext", "module": "esnext", "strict": true, "jsx": "preserve", "moduleResolution": "node" } }
package.jsonのコマンド
元々TypeScriptでの型チェックを行なっていたコマンドにvue-tsc --noEmit
を追記します。
"lint:type-check": "tsc -p . --noEmit && vue-tsc --noEmit",
型チェックの実行
実行すると以下のような形でtemplate部分の型チェック結果が表示されます🙆✨
$ yarn lint:type-check app/javascript/components/entry/EntryCardCollection.vue:3:32 - error TS2339: Property 'entries' does not exist on type 'never'. 3 <div v-for="entry in props.entries" :key="entry.id" :class="`column is-${clumnSize}`">
VS Code上で警告出す
以下の拡張機能を使うとVS Code上で警告を出せるのでより便利でした。
※Veturと競合するようなので、Veturは無効化しておくのが良いようです。
おわりに
template部分も型チェックできるの、大分良いですね!!