const enum 承诺零运行时开销,代价是它依赖跨文件信息来完成内联,而 esbuild、swc、Vite 这类现代工具都是按模块独立编译。库在 .d.ts 里声明 const enum 就变成地雷:使用方根据声明快照把值内联进产物,而库自身构建时 const 修饰符已经把枚举对象抹掉了,运行时那个对象根本不存在。一旦版本漂移更糟:编译时按 1.2 版把 Status.Active 内联成 5,运行时加载的是把它改成 7 的 1.3 版,条件判断静默走错分支,数据被悄悄写坏。isolatedModules 选项正是为捕捉这类只适用于全程序编译的模式而存在,而它明确与 ambient const enum 不兼容。