Typescript 1.8 - ES2015 导入 js 文件

Typescript 1.8 - ES2015 imports in js files

本文关键字:导入 js 文件 ES2015 Typescript      更新时间:2023-09-26

我想在现有的 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 =声明。