yaakai.to

🖊

--experimental-strip-types と Node 組み込みランナーで TypeScript をテストをする

前回 の続きのようなもので、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.jsonallowImportingTsExtensions noEmit を立てます。

{
    "compilerOptions": {
        "allowImportingTsExtensions": true,
        "noEmit": true
    }
}

また、namespaceenum のような、型の表現以外の TypeScript のコードを実行するには別途 --experimental-transform-types が必要です。今回は必要ないコードしかなかったので指定しませんでした。

Refs