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 |