Node.jsのフレームワーク作り

2018-12-11 12:02:48

 現在、Node.js用のフレームワークを作っています。最初は通常のJavaScriptで作っていたのですが、せっかくなのでTypeScriptで組み直してみました。プロセスマネージャとしてpm2を使っているので、TypeScriptのモジュールを組み込んだら、あとは拡張子をtsに変えるだけで勝手に認識してくれます。


 pm2はtsの拡張子を見つけると内部でts-nodeを呼ぶのですが、ts-nodeはデバッグトレース用のinspectオプションが効きません。色々調べ回った結果、node_argsは使わず、

"env": {
        "NODE_OPTIONS": "--inspect=0.0.0.0:9229"
 }


という記述を入れてやれば、デバッグトレースが使えるようになります。

 ということでTypeScriptによってVisualStudioから入力補完が効くのは便利なのですが、結構制約が多いので使いづらい部分もあります。クラスに動的にメソッドの追加を使用とすると怒られ、JavaScriptの便利な機能が塞がれてしまっています。さらにGenericsで色々やろうと思ったら、渡されたオブジェクトの名前を取り出すことすら出来ず、もう少しなんとかして欲しかったです。Javaくらい機動的に使えれば理想だったのですが、残念ながら型キャストの延長線にしかいませんでした。