THINK

Typescriptいおける型が不明な場合の応急処置

1/28/2019

vue.jsTypescriptを使って書いてみよう! と思いたち、Typescriptを書き始めたのですが、 型周りで苦労しているのでメモ。

型がわからない問題

Bootstrap.vueが便利なので、使っているのですが、 TypeScript側からBootstrap.vueのコンポーネントの型が分からず、 コンパイルエラーで弾かれる事態に…

Typescriptのメリットである部分が完全に裏目に出てしまったなと。

具体的にはBootstrap.vueb-modalなのですが…

this.$refs.modal.hide();

hide()なんて関数は無いよと怒られる状態に陥っていました。

要するに知ってる型にキャスト出来ない問題なのですが、 vue.jsの型ってどれなんですか…

ただ、現状時間もない状況なので、ひとまずの解決策を置いておきます。

let modal: any = this.$refs.modal;
modal.hide();

これで、コンパイル時に弾かれなくなりました。

正直無理矢理なので正直なんとも言えない。

まとめ

今回の件はTypescriptのメリットである部分が裏目に出てしまったので、

Typescriptの使いどころを考えないといけないのかなと思える一件でした。

パーツのIOをはっきりさせたりするのは良いのですが、 パーツを呼び出す側はjavascriptで書いた方が幸せになれる気がする…

参考

Bootstrap.vue: b-modal