--verbatimModuleSyntax

TL;DR

importがビルドJSで失われないようにするオプション。

import type { A } from "x";

// JS
// (empty)
import { a, type A } from "x";

// JS
import { a } from "x";
import { type A } from "x";

// JS
import {} from "x";

補足

通常、値のインポート以外はビルドJSに出力されない。 この挙動がESModuleの挙動を破壊することがある。

--importsNotUsedAsValues --preserveValueImports --isolatedModules など複数のオプションを利用して調整する必要があったが、シンプルに指定するための --verbatimModuleSyntax が導入された。

{ } で囲まれていない型インポートはJSに出力されない。

import type * as a from "x";

import { type A } from "x";
export { type A } from "x";

// JS
// (empty)

Last updated