es6 - typescript导出interface




打字稿导出与默认导出 (2)

exportdefault export 在Typescript中有什么区别。 在所有教程中,我看到人们在 export 其类,并且如果我在导出之前未添加 default 关键字,则无法编译我的代码。

另外,我在官方 打字稿文档中 找不到默认export关键字的任何痕迹。

export class MyClass {

  collection = [1,2,3];

}

不编译。 但:

export default class MyClass {

  collection = [1,2,3];

}

请问。

错误是: error TS1192: Module '"src/app/MyClass"' has no default export.


我试图解决相同的问题,但是找到 TypeScript Deep Dive Basarat Ali Syed 提出了一个有趣的建议,那就是我们应该避免类的通用 export default 声明,而应该将 export 标签附加到类声明中。 导入的类应改为在模块的 import 命令中列出。

那就是:代替

class Foo {
    // ...
}
export default Foo;

import Foo from './foo'; 的简单 import Foo from './foo'; 在要导入的模块中,应该使用

export class Foo {
    // ...
}

import {Foo} from './foo'

原因是类的重构困难,并且增加了导出工作。 Basarat的原始帖子处于 export default 可能会导致问题


这是简单对象导出的示例。

var MyScreen = {

    /* ... */

    width : function (percent){

        return window.innerWidth / 100 * percent

    }

    height : function (percent){

        return window.innerHeight / 100 * percent

    }


};

export default MyScreen

在主文件中(不需要和不需要创建新实例时使用),并且它不是全局的,只有在需要时才导入它:

import MyScreen from "./module/screen";
console.log( MyScreen.width(100) );




ecmascript-6