Front-End/TypeScript

[TypeScript] 18장 모듈

Tinkies 2025. 4. 1. 03:05

1. Export = 선언 export 하기

타입스크릡트에서 export = 구문을 사용하기 위해 모듈을 내보낼 수 있습니다, 이 방식은 CommonJS 스타일의 모듈을 만들 때 주로 사용되는 방식입니다.

function myFunction() {
  console.log('Hello, World');
}

export = myFunction;

2. Export 문 (Export statements)

여러 가지 요소를 내보내는 방법으로 export문을 사용합니다.

export const number = 42;
export function sayHello() {
  console.log('Hello');
}

sayHello();

3. Re-export 하기 (Re-exports)

다른 모듈에서 내보낸 요소를 다시 내보내는 방법입니다.

// anotherModule.ts
export { number, sayHello } from './myModule';

4. import - 모듈에서 단일 export를 import 하기

단일 내보낸 요소를 가져오는 방법으로 import를 사용합니다.

import { sayHello } from './myModule';
sayHello(); // Hello

5. 전체 모듈을 단일 변수로 import 하기 

모듈 전체를 하나의 변수로 가져오는 방법입니다.

import * as myModule from './myModule';
console.log(myModule.number);
myModule.sayHello();

6. 모듈 exports 접근에 사용하기

가져온 모듈의 요소에 접근하는 방법입니다.

console.log(myModule.number); // 42

7. 부수효과만을 위해 모듈 import 하기

부수효과가 필요한 경우 모듈을 가져오는 방법입니다.

import './myModule'; // 실행만 하고 결과는 사용 X

8. 타입 import 하기

타입만 가져오는 방법입니다.

import type { MyType } from './myModule'

9. Default exports

기존 내보내기를 사용하는 방법입니다.

// myModule.ts
export default function () {
  console.log('This is a default export.');
}

10. x를 모두 export 하기

모듈의 모든 요소를 내보내는 방법입니다.

export * from './myModule';

11. export = 와 import = require()

CommonJS 스타일의 모듈을 사용할 때의 예시입니다.

// myModule.ts
function greet() {}
export = greet;

// main.ts
import greet = require('./myModule');
greet();

12. 모듈을 위한 코드 생성

타입스크립트는 컴파일 시 해당 모듈의 코드를 생성합니다. 모듈을 정의하고 사용하는 방법은 아래와 같습니다.

export const value = 100;
export function multiply(x: number) {
  return x * value;
}

13 . 선택적 모듈 로딩과 기타 고급 로딩 시나리오

조건부로 모듈을 로드하는 방법입니다.

if (someCondition) {
  import('./myModule').then((module) => {
    module.sayHello();
  });

14. 다른 Javascript 라이브러리와 함께 사용하기

타입스크립트는 다른 JS 라이브러리와 함께 사용할 수 있습니다.

import * as _ from 'lodash';
const array = [1, 2, 3];
console.log(_.reverse(array));

15. 속기 ambient 모듈 

전역 변수를 사용할 경우 정의합니다.

declare module 'myAmbientModule' {
  export function myFunction(): void;
}

16. 와일드카드 모듈 선언

모든 모듈을 잡아내는 와일드카드 선언입니다.

declare module '*.json' {
  const value: any;
  export default value;
}

17. UMD 모듈

UMD(Universal Module Definition) 모듈을 정의하는 방법입니다.

// myModule.js
(function (root, factory) {
  if (typeof define === 'function' && define.amd) {
    define([], factory);
  } else if (typeof exports === 'object') {
    module.exports = factory();
  } else {
    root.myModule = factory();
  }
})(this, function () {
  return {
    greet: function () {
      console.log('Hello, UMD!');
    },
  };
});

 

 

GitHub - Koras02/typescript-bloging

Contribute to Koras02/typescript-bloging development by creating an account on GitHub.

github.com

 

LIST