vue-async-computed@3.8.1でTypeScript対応したのでそれに対応した時にやったこと
やりたいこと
厳密には3.8.0で対応したけどtypesディレクトリがpublishされていない不具合があった。
やったこと
基本的に元々main.tsで以下のように書いていたimportを// @ts-ignoreなしで使えるようなった。
code:main.ts
// @ts-ignore
import AsyncComputed from 'vue-async-computed';
...
上記のQiitaの記事では// @ts-ignoreせずに頑張って定義していたがVue.use(AsyncComputed)だけでそこまで型定義するメリットもないし、公式でTypeScript対応されそうだったのでこうしていた。 ただし今回のTypeScript対応はdecoratorは含まれていないので、相変わらず@AsyncComputedは自分で作る必要がある。importと名前かぶるので上記の変更では誤解を減らすために@AsyncComputedPropに改名した。 今後
将来的に公式でdecoratorの対応されるかもしれないし、されないとすればIAsyncComputedValue<T>をexportしてくれるとdecoratorを定義する時に重複した型定義が減らせるので、そういうことをissueなので提案するのもありかなと思っている。
そのためもう少し落ち着いてからQiitaの方は更新する。