我想在现有的 Babel 项目上开始使用 Typescript。我的目标是能够在构建过程中添加打字稿,尽可能少地修改现有代码。出于这个原因,我决定将打字稿(针对ES2015)和Babel链接起来。有了ts1.8的js文件支持,我以为我终于能够保持一切正常,然后一个接一个地转换文件。但这是我遇到的第一个问题:
error TS8003: 'export=' can only be used in a .ts file.
Typescript 不允许 es2015 导出语法:
export default 'foo';
.
我们使用 es2015 语法进行导入/导出,我不想为旧的 commonJS 符号更改它。有没有办法让打字稿允许它?
下面是演示该问题的最小示例:
你好.js
export default (name) => console.log(`Hello ${name}`);
tsconfig.json
{
"version": "1.8",
"compilerOptions": {
"module": "es2015",
"allowJs": true,
"target": "es2015"
}
}
命令行(使用打字稿 1.8)
tsc --outDir ../out
结果
hello.js(1,1): error TS8003: 'export=' can only be used in a .ts file.
你得到的default export
错误是TypeScript编译器中的一个错误。自从您提交此问题以来,我已经发送了修复程序。
如果你想在 JavaScript 文件中指定根模块(这是非标准的,特定于某些模块加载器,如 CommonJS),这样做的方法与你在 JavaScript 中这样做的方式相同:
module.exports = yourRootExportObjectHere;
编译器应识别并尊重这些等同于export =
声明。