【问题标题】:Typescript 1.5 modules import export errorsTypescript 1.5 模块导入导出错误
【发布时间】: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.

【问题讨论】:

    标签: typescript ecmascript-6 typescript1.5


    【解决方案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'; 工作,因为它是默认设置。
    猜你喜欢
    • 2015-08-13
    • 2015-05-08
    • 2012-11-06
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 2015-12-24
    • 1970-01-01
    相关资源
    最近更新 更多