Frontend/Node.js

node.js 와 Typescript module system에 대해서

Developer Mobssie 2021. 6. 2. 22:51

node.js와 Typescript의 module system

타입스크립트 모듈 시스템은 자바스크립트 최신문법을 계승했기 때문에 차이를 잘 알아야 한다.

node.js typescript
common.js module.js  

 

Javascript file과 Typescript file은 module화 할 수 있다.

 

module화 하는 이유는

* 다른파일에서 사용할 수 있게 해줌.
* 가독성과 재사용성을 높히기 위해서 사용함.


[node.js에서 module화 하는 방법]

const hello = 'module'
module.exports = 'hello';

@module.js

const hi = require('./module');

@run.js

▶ require만 하면 다시 사용할 수 있다.

 

객체를 export할 때 에는 export자체가 객체(object)

const hello = 'module'

exports.a = 'b';
exports.b = false;

//또는
module.exports = {
    a: 'b',
    b: false,
}

@module.js

 

const {a, b} = require('./module');

@run.js

 

 

const hello = 'module'
const a = 'b'
const b = false
export { a };
export { b };

@module.js

 

import   hello, { a, b } from './module';
console.log(a,b)

@run.js


▶ module.exports 파일에서 한번만 사용가능.

export 들밑에 module.exports 사용하게 되면

Result: module.exports 사라짐.

Because: overriding~! 덮어 써버림! (exports는 === 임)
But: export default는 덮어쓰지 않는다.


타입스크립트도 import export로 사용하는데 
타입스크립트에서 가져올때에는 

import * as hi from 'module'

▶ 문법적으로 맞음

 

import hi from 'module'

▶ config.js에서 옵션으로 esModuleInterop: true 로 설정하면 사용 가능하다.

▶▶▶ 차이는 알아두는게 좋음

exports interface Card {

}

export class Hero implements Card {

}

 

▶ 같은 파일 안에서 interface나 class도  module화도 가능하다.

▶ import와 export가 있으면 모듈이고, 없으면 그냥 스크립트이다.

▶ d.ts 는 d.ts 는 타입스크립트 코드의 타입 추론을 돕는 파일이고, 보통 내 프로젝트가 라이브러리일때 사용 한다.
 

 

[import 사용법]

// ES2015모드
import {Card, Player} from './types'
// common.js 모드
import A = require('./common')







'Frontend > Node.js' 카테고리의 다른 글

nodemon  (0) 2024.04.03
node cors 해결하기  (0) 2024.03.23
node로 API 만들기 (express)  (0) 2024.03.23
Node.js File System Module  (0) 2018.12.13