jiti
JavaScriptで書かれたモジュールからTypeScriptで書かれたモジュールを動的にimportすることのできるライブラリ code:js
import { createJiti } from "jiti";
const jiti = createJiti(import.meta.url);
const mod = jiti("some/ts/module.ts");
mod.hello();
実行時に.tsをコンパイルして、.jsをimportしているかのようにimportできる
キャッシュもされるので、そんなに遅くは無いはず
v2.0.0はまだ正式リリースされてなくまだv2.0.0-beta.3だが、基本的にはv2を使った方が良い
使いどころ
.tsのスクリプトを実行する
コンパイルはしたくないが、型の恩恵を受けたい
.tsの設定ファイルを読み込む
ESLintのv9.9.0で設定をeslint.config.tsで書けるようになったが、その実装にjitiが使われている commonjsからesmをrequireする
TypeScriptのesModuleInteropと同じようなことをやってくれる
interopDefaultオプションをtrueにする方がよい