Typescript 1.5 模块导入导出错误

Posted

技术标签:

【中文标题】Typescript 1.5 模块导入导出错误【英文标题】:Typescript 1.5 modules import export errors 【发布时间】:2015-07-19 21:01:08 【问题描述】:

我在 typescript 项目中重新导出时遇到问题

我有图层类,我这样声明它:

// Layer.ts  
export default class Layer//code

我还有另一个文件可以重新导出所有相关文件

// layers.ts
export Layer from "./Layer";

编译时出现以下错误:

src/layer/layers.ts(1,14): error TS1005: ';' expected.
src/layer/layers.ts(1,19): error TS1005: ';' expected.
src/layer/layers.ts(2,1): error TS1128: Declaration or statement expected.
src/layer/layers.ts(2,24): error TS1005: ';' expected.
src/layer/layers.ts(2,29): error TS1005: ';' expected.

还有另一个相关的错误: 使用 export 关键字声明接口时,如下所示:

export default interface MyInterface<V>
    method():V;

我再次收到此错误:

MyInterface.ts(1,26): error TS1005: ';' expected.

【问题讨论】:

【参考方案1】:

对于第一部分: export default as Layer from './Layer';

对于第二部分,不能将接口导出为default,因为生成的 javascript 代码中没有任何内容表示接口。

所以去掉默认关键字:

export interface MyInterface<V>
    method():V;

使用 ES6 模块语法导入可能如下所示:

import  MyInterface  from './MyInterface';

class A implements MyInterface<string> 

【讨论】:

谢谢,这应该记录在案...这是 ecma6 脚本规范还是 ts 选择?我本来希望 export Layer from './Layer'; 工作,因为它是默认设置。

以上是关于Typescript 1.5 模块导入导出错误的主要内容,如果未能解决你的问题,请参考以下文章

如何从 javascript/typescript 模块文件(导入/导出)访问 Vuex 商店?

如何在 TypeScript 中正确导出和导入模块

LayaBox---TypeScript---模块

为啥在导入模块时会显示此错误?

将 CommonJS 默认导出导入为命名导出/无法加载 ES 模块

TypeScript 阻止文件成为模块?