Visual Studio CodeでVue Plugin + TypeScriptの開発を行う際の問題

146
NO IMAGE

VueのPluginではVueそのもののprototypeを拡張するのだが、当然型定義がないとTypeScriptでコンパイルができない。よって型定義ファイルを作成しなければならない。やり方は公式の通り。

これで終われば話が早いが、Visual Studio CodeのVetur Pluginは不具合があるのか対応がされてないのか、Vueの型拡張を上手い具合に認識してくれない。仕方がないのでworkaroundとしてscript要素のsrc属性を利用する。

<template>...</template>
<script src="./app-impl.ts" lang="ts" />
<style>...</style>

なお執筆時点のVeturの最新版である0.23.0では、そもそもscript要素の言語をTypeScriptにすると、CPU Usageが100%近くに張り付き続ける不具合がある。これもTypeScriptの実装を別ファイルに移せば解決するようだ。(こちらを回避したいだけなら、ひとつ前のバージョンに戻すのもあり。)