Skip to content

1. 모듈


1. export

  • ES6의 export와 같은 방식으로 변수, 함수, 타입, 인터페이스 등에 붙여 사용한다.


export interface Triangle {
  width: number;
  height: number;
}
import { Triangle } from "./math.ts";

class SomeTriangle implements Triangle {
  // ...
}


2. import

  • ES6의 import와 동일한 방식으로 사용한다.


import { WheatBeerClass } from "./index.ts";

class Cloud extends WheatBeerClass {
  // ...
}


3. 타입스크립트의 모듈 코드 변환

  • tsconfig.json 파일에 설정한 컴파일러 모드에 따라 모듈 코드가 각기 다르게 변환된다.


import m = require("mod");
export let t = m.something + 1;
define(["require", "exports", "./mod"], function (require, exports, mod_1) {
  exports.t = mod_1.something + 1;
});
var mod_1 = require("./mod");
exports.t = mod_1.something + 1;
(function (factory) {
  if (typeof module === "object" && typeof module.exports === "object") {
    var v = factory(require, exports);
    if (v !== undefined) module.exports = v;
  } else if (typeof define === "function" && define.amd) {
    define(["require", "exports", "./mod"], factory);
  }
})(function (require, exports) {
  var mod_1 = require("./mod");
  exports.t = mod_1.something + 1;
});
System.register(["./mod"], function (exports_1) {
  var mod_1;
  var t;
  return {
    setters: [
      function (mod_1_1) {
        mod_1 = mod_1_1;
      },
    ],
    execute: function () {
      exports_1("t", (t = mod_1.something + 1));
    },
  };
});


  • 타입스크립트 컴파일 명령어를 입력할 때 컴파일러 모드를 부여할 수 있다.


# commonjs 모드인 경우
tsc --module commonjs Test.ts

# amd 모드인 경우
tsc --module amd Test.ts

References