Node.js 本体で TypeScript ファイルを実行できるようにするプロポーザルが出されているという話が先週あたりから話題になっている。しかしそれほど嬉しいかといわれると、正直いらんなあと思っている。
TypeScriptで簡単なスクリプトを書くときは、長らくtsxを使って実行している。tsxを使い始めるより前は ts-node を使っていたが、tsxを使ってからは何の不満もなく使い続けている。
tsxは内部的にはesbuildでTypeScriptをトランスパイルしていて、型チェックは行わない。tsxのありがたい点は、すべての node
コマンドのオプションを tsx
コマンドでサポートしていることだ。単純にコマンドを置き換えるだけでいいので、何も新しく覚えることがない。
構造的にはNode.jsの中でswcでJavaScriptに変換されるか、外でesbuildで変換されるかの違いしかない。strip-type方式と違って使えるTypeScriptの構文にも制約はないし、解決できる問題が変わらないのであれば、Node.jsにはそのままでいてもらうほうがやりやすいなあと思っている。
追記: 依存関係とサプライチェーンについてのやりとり
見えないところで依存しているものが知らぬ間に増えているよりは、自分でコントロールしている範囲で依存するほうがまだマシという立場。Node.jsが自前で実装するのでなければ、内部でサプライチェーンが伸びるより自分で管理できる外部のローダーのほうを僕は選びたい。