DIGITAL COFFEE-デジタルコーヒー

どうでもいいことを呟くどうでもいいブログ

angular2で無理やり非対応JavaScriptのライブラリを使う

お久しぶりです、PlugOutです。

 

f:id:PlugOut:20161224180344p:plain

今回はプログラミングのお話。

 

最近Angular2を使っていて、どうしてもAngular2の非対応モジュールを使わなければならない場面に出くわしたのでメモ程度に書きます。

TypeScriptでAngular2のコードを書いていると、内部でJavaScriptのAngular2に非対応なライブラリを呼び出そうとするとコンパイルエラーが発生します。

jQueryとかだと型ファイルを取りこめばうまく解消されたりするんですけどね。

その場合に無理やりそのモジュールを呼び出すのがeval()でゴリ押しするという方法。

外部JavaScriptファイルで定義された、HogeというクラスのdoFuga()を呼び出したい場合はこう書きます。

let hoge = null;
eval("hoge = new Hoge();");
hoge.doFuga();

こう記述してやると、コンパイルエラーにならずに無理やりHogeのクラスを生成できます。

何でこれが可能かっていうと、TypeScriptって最終的にはJavaScriptになって動くからで、無理やりコンパイルの部分のチェックをスキップさせているからなんですが……。

まぁただJavaのReflectionと同じで黒魔術感が半端ないので、できれば使わない方がよさそうです。

どうしようも無くなった時の最終手段的な感じで使うと良いのかな?

 

雑記(2016-12-16)

f:id:PlugOut:20161217020523j:image

もう12月がやってきましたね。

今年もいろんなことがあったなぁーとしみじみ思い返す時期です。

良いこと悪いことがいっぱいあったけれど、とりあえずコーヒーは沢山飲んだなぁ。

今年ももう残りわずか、悔いがないように過ごして来年を迎えたいところです。

 

最近全然ブログを書けていないなぁ。

もうちょっと頑張ろう。