エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

Javaエンジニアだった人がTypescript開発でハマったこと

書くに至った経緯

Typescriptを使って2ヶ月。
ある程度経験を積んだから、感じたことを書き記す。

使っているTypescriptは、2.1.4

はまったこと・悩んだこと

Promise

非同期のためのもの。
説明を聞くとなんとなく納得してしまうが、実際使うと分からんってことが多かった。
Javaにも似たライブラリがあるようだが、使ったことはなかった。
自分でJavaで近いソースを書いて覚えられた。
要するに汎用的なスレッド処理をしてくれるものなんだね。
Nodeは、全体的に非同期のものが多いので、ここらへんはきちんと抑えておく必要があると感じた。
今後やり始める人は、要注意!

EventEmitter

Javaの開発歴が長いおかげで、GUIのイベント管理系の知識がまるでない。
経験が薄いため、どうすれば管理し易いか、可読性が上がるのかの知見がない。
ソースを追うのにかなり苦労中(現在進行形)

なるべくイベント名を、呼び出し・登録側で書かせないのがいいのではなかろうか?と頭の中で感じた。
イベント専用のリスナー一個にすべきか迷ったけど、まとめたらまとめたでカオス化しそうな気がする。
どう管理するか、まだ答えが出せていない。

enum

Javaとは違い、書く要素には数値が割り当てられる。
JavaでStateパターン、Strategyパターンをenumを使って楽に実現していたが、TypeScriptではできないケースが多い。
そこらへんにヤキモキした。

オブジェクトの割当をしたかった。

型定義ファイルとexport interface

違いがよくわからないんだよね。。。
現在進行形で。
どっちにしろ、コンパイル後はファイル出力されないんじゃ。。。って思う。
export interfaceは、コンパイルの手助けをするもので、型定義ファイルは、コンパイル後に存在するであろうファイルのために作るって認識でいる。
な・・・何を言ってるのかわからねーと思うが、俺も何を言っているのか分からねぇ・・・

クラスの情報が取れない

なぜクラスの情報が取れないんだろうか?
JavaのようにClassクラスのオブジェクトが欲しい時があったが、それができなくてヤキモキした。
Classクラスって、改めて字面にするとものすごく分かりにくい。

Typescriptを使って個人的に思うこと

Javaと似ているけど、ところどころ通じないところがある。
マイクロソフトの.NET系の流れが色濃く残っている感じがする。
enumなんかまさにそう。

あと、型は便利なこともあれば、ない方がいいときもあると感じた。
厳密でないほうが嬉しいこともたまにある。
ただ、any型は多用すべきではないなと感じる。
型がないところに型の定義を追加したのがTypescriptなんだから、型がない方向にもっていくのはナンセンス!