前回 の続きのようなもので、Node 22.6 で --experimental-strip-types が入ったので swc-node を使う必要がなくなりました。次のようなコマンドで、 Node の組み込みテストランナーを使って TypeScript のテストが実行できます。
$ node --experimental-strip-types --watch --test 'src/**/*.test.ts'
ただしすんなり動くわけではなく、やはりモジュールの解決周りで調整が必要になります。ここに詳しく解説するスペースはないので、詳しく知りたい方はリンクを参照してください。
前回はコード上では .js を省略しない import とし、bundler 側で辻褄を合わせていました。--experimental-strip-types の場合は現状では .(m)ts が省略できなくなるので、コード上の import を .ts に書き直しました。このままだとエディタ上でエラーとなってしまうため、 tsconfig.json で allowImportingTsExtensions と noEmit を立てます。
{
"compilerOptions": {
"allowImportingTsExtensions": true,
"noEmit": true
}
}
また、namespace や enum のような、型の表現以外の TypeScript のコードを実行するには別途 --experimental-transform-types が必要です。今回は必要ないコードしかなかったので指定しませんでした。
