Typescript 类型脚本和模块选项设置为es2015/es2020/esnext

Typescript 类型脚本和模块选项设置为es2015/es2020/esnext,typescript,commonjs,es6-modules,Typescript,Commonjs,Es6 Modules,这是我的tsconfig.json文件: { "compilerOptions": { "target": "es5", "module": "esnext", } } 和我的文件test.ts: module.exports.a = 4; 然后我运行warn tsc,令人惊讶的是,在我的输出文件test.js中,我仍然有 module.exports.a = 4; 问题:为什么输出文件的内容不使用esnext模块?为什么不导出常量a=4 顺

这是我的tsconfig.json文件:

{
    "compilerOptions": {
        "target": "es5",
        "module": "esnext",
    }
}
和我的文件
test.ts

module.exports.a = 4;
然后我运行
warn tsc
,令人惊讶的是,在我的输出文件
test.js
中,我仍然有

module.exports.a = 4;
问题:为什么输出文件的内容不使用esnext模块?为什么不导出常量a=4

顺便说一句,如果我换一种方式-
module
设置为
commonjs
test.ts
,使用
export const a=4
可以正确生成带有cjs模块的输出文件

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