首页 > 解决方案 > TypeScript 和模块选项设置为 es2015/es2020/esnext

问题描述

这是我的 tsconfig.json 文件:

{
    "compilerOptions": {
        "target": "es5",
        "module": "esnext",
    }
}

和我的文件test.ts

module.exports.a = 4;

然后我yarn tsc在我的输出文件中运行并且令人惊讶的是test.js我仍然有

module.exports.a = 4;

问题:为什么输出文件的内容没有使用 esnext 模块?为什么不是export const a = 4

顺便说一句,如果我采用其他方式 -module设置为commonjstest.ts使用export const a = 4cjs 模块正确生成输出文件。

为什么 ts 可以将模块从 es 编译到 cjs 而不能从 cjs 编译到 es ?如果确实 TS 做不到,那为什么我们还有模块选项呢?

标签: typescriptcommonjses6-modules

解决方案


推荐阅读