더 증가 esModuleInterop이없는 경우
도서관 코드 :
CONST 수출 = 1 ; 수출 기본 기능 } {) (B를
코드를 생성
수출 .__ esModule는 = 진정한 ; exports.a = 1 ; 함수 B () {} 수출 [ "기본"] = B;
코드 라이브러리를 사용하여 :
'./export'에서 lib 디렉토리로 수입 * ;
CONSOLE.LOG (LIB);
코드를 생성
수출 .__ esModule는 = 진정한 ; var에 LIB의 =은 ( "./ 내보내기"를 필요로 ); CONSOLE.LOG (LIB);
'./export'에서 수입 LIB ;
CONSOLE.LOG (LIB);
코드를 생성
수출 .__ esModule는 = 진정한 ; var에 export_1의 =은 ( "./ 내보내기"를 필요로 ); CONSOLE.LOG (export_1 [ "기본"]);
위의 코드를 이용하여 코드를 생성 TS 가능하다.
그러나 우리는 FS와 같은 타사 라이브러리를 사용하는 경우. 다음과 같이 우리의 코드는
'FS'에서 수입 FS ;
CONSOLE.LOG (FS);
코드를 생성
수출 .__ esModule는 = 진정한 ; var에 fs_1의 =은 ( "FS"필요 ); CONSOLE.LOG (fs_1 [ "기본"]);
이 방법은 FS에 사용되지 않도록 FS는, 디폴트 속성입니다.
그래서, esModuleInterop하지 않고, 제대로 FS를 참조하는 방법이 있습니다 :
'FS'에서 FS와 같은 수입 * ; CONSOLE.LOG (FS); // 또는 가져 오기 fsync를 {에서} 'FS' ; CONSOLE.LOG (fsync를);
게다가 esModuleInterop, 코드
'./export'에서 lib 디렉토리로 수입 * ;
CONSOLE.LOG (LIB);
다음과 같이 컴파일 :
VAR __importStar = ( 이 && 이 .__ importStar) || 기능 (모드) { 경우 (MOD && 개조 .__ esModule) 복귀 모드를; VAR의 결과 = {}; 경우 (MOD! = null의 ) 대 ( VAR의 K 의 개조) 하는 경우 (Object.hasOwnProperty.call (MOD, K)) 결과 [K] = 개조 [K]; 결과 [ "기본"= 개조; 반환 결과를; }; 수출 .__ esModule는 = 진정한 ; VAR LIB = __importStar (( "./ 내보내기"를 필요로 )); CONSOLE.LOG (LIB);
코드
'./export'에서 수입 LIB ;
CONSOLE.LOG (LIB);
로 컴파일
VAR __importDefault = ( 이 && 이 .__ importDefault) || 기능 (모드) { 반환 (모드 && 모드 .__ esModule)? 모드 : { "기본" : 모드를}; }; 수출 .__ esModule는 = 진정한 ; VAR export_1 = __importDefault (( "./ 내보내기"를 필요로 )); CONSOLE.LOG (export_1 [ "기본"]);
그때
'FS'에서 수입 FS ;
CONSOLE.LOG (FS);
그것은 일반적으로 사용할 수 있습니다.
요약 :
수출에 대한 라이브러리를 사용하는 기존의 js의 많은 방법, 그리고 수출 기본 속성,하지만 직접 수출 module.exports의 사용을 commonjs 때문에 = XXX,이 'FS'에서 수입 FS로 이어질 것입니다; 문법의 도입은 실패합니다.
호환성을 위해 이러한 라이브러리 타이프 라이터 JS, esModuleInterop의 도입, 그래서 'FS'정상적인 사용에서 해당 수입 FS 때문에.