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