vue.jsをTypescriptを使って書いてみよう! と思いたち、Typescriptを書き始めたのですが、 型周りで苦労しているのでメモ。
型がわからない問題
Bootstrap.vueが便利なので、使っているのですが、 TypeScript側からBootstrap.vueのコンポーネントの型が分からず、 コンパイルエラーで弾かれる事態に…
Typescriptのメリットである部分が完全に裏目に出てしまったなと。
具体的にはBootstrap.vueのb-modalなのですが…
this.$refs.modal.hide();
hide()なんて関数は無いよと怒られる状態に陥っていました。
要するに知ってる型にキャスト出来ない問題なのですが、 vue.jsの型ってどれなんですか…
ただ、現状時間もない状況なので、ひとまずの解決策を置いておきます。
let modal: any = this.$refs.modal;
modal.hide();
これで、コンパイル時に弾かれなくなりました。
正直無理矢理なので正直なんとも言えない。
まとめ
今回の件はTypescriptのメリットである部分が裏目に出てしまったので、
Typescriptの使いどころを考えないといけないのかなと思える一件でした。
パーツのIOをはっきりさせたりするのは良いのですが、 パーツを呼び出す側はjavascriptで書いた方が幸せになれる気がする…