2017-02-18 3 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'; 

각 모듈은 선택적으로 기본 내보내기를 내보낼 수 있습니다. 기본 수출 은 키워드 default로 표시됩니다. 모듈 당 하나의 기본값 만 내보낼 수 있습니다. 기본 내보내기는 다른 가져 오기 양식을 사용하여 가져옵니다. Export =

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

CommonJS와 AMD 모두

은 일반적으로 수출의 개념이 모듈에서 모든 수출을 포함 객체가 있습니다.

또한 내보내기 개체를 사용자 지정 단일 개체로 바꿀 수 있습니다. 기본 내보내기는이 동작을 대신하는 역할을합니다. 그러나 두 개는 호환되지 않습니다. TypeScript는 전통적인 CommonJS 및 AMD 워크 플로우를 모델링하기 위해 export =를 지원합니다.

export = 구문은 모듈 에서 내 보낸 단일 개체를 지정합니다. 클래스, 인터페이스, 네임 스페이스, 함수 또는 enum 일 수 있습니다.

export =를 사용하여 모듈을 가져 오는 경우 = require ("module") 모듈을 가져 오기해야합니다.

다른 형태는 포함 :

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

exportimport의 일반적인 형태입니다.
es6 가져 오기/내보내기 구문을 기반으로 MDN에서 더 많은 정보를 찾을 수 있습니다 ( import/ export).