2017-02-18 53 views
2

我是打字稿中的发票。任何人都可以向我解释这些出口之间的区别:不同的输入和输出形式的打字稿

export default class Foo {} 
/* or */ 
class Foo {} 
export = Foo; 
/* or */ 
export class Foo { } 

这些形式进口的区别,:

import x = require('y'); 
import x from 'y'; 
import { x } from 'y' 
import * as x from 'y'; 

以及何时使用他们每个人的?

回答

2

它涵盖的所有modules docs page

Default exports

export default class Foo {} 
// and 
import x from 'y'; 

每个模块可以选择导出一个默认的导出。默认出口 标有关键字默认值;每个模块只能有一个默认的 导出。默认导出使用不同的 导入格式导入。

Export =

export = Foo; 
// and 
import x = require('y'); 

两个CommonJS的和AMD通常具有出口的概念对象 ,其包含来自一个模块的所有出口。

它们还支持用定制的单个对象 替换导出对象。默认出口意味着作为这种 行为的替代;然而,这两者是不相容的。 TypeScript支持 export =来模拟传统的CommonJS和AMD工作流程。

export = syntax指定从模块的 中导出的单个对象。这可以是类,接口,名称空间,函数或枚举。

当使用export =导入模块时,必须使用TypeScript特定的导入让 = require(“module”)导入模块。你包括

其他形式:

export class Foo { } 
// and 
import { x } from 'y' 
import * as x from 'y'; 

exportimport正常形态。
它基于es6导入/导出语法,您可以在MDN中找到更多信息:import/export