8. module
TypeScript에 추가된 module에 대해 공부해보자.
module은 예시에서는 interface와 class를 사용하겠지만 function 등 객체에서는 모두 활용될 수 있는 내용이다.
(1) internal module ( namespace )
먼저 internal module은 namespace라 하며, 동일한 이름의 객체를 지정할 때 사용한다.
namespace로 지정된 interface나 class는 export를 통해서 사용할 수 있으며, export를 지정하지 않으면 namespace 내에서만 쓸 수 있다.
다른 파일에 있는 namespace의 class나 interface를 가져와 쓸 수도 있다.
extends, implements를 사용한다.
(2) external module
namespace도 외부 파일에서 가져와 쓸 수 있지만 보톤 external module을 사용한다.
사용법은 예시를 보면서 설명하겠다.
IShape.ts의 interface를 Circle.ts로 가져와 사용하는 방법이다.
먼저 export로 interface가 외부에서 쓸 수 있게 해주며, import를 통해 Circle.ts에 IShape interface를 사용할 수 있게 해준다.
export default도 있는데 이걸 사용하면 {} 없이 사용할 수 있다.
즉, 해당 폴더에서 default로 export하는 객체를 지정해주는 것이다.
Rectangle의 경우 export default로 사용한 것을 확인할 수 있다.
그리고 alias(별칭)를 줄 수도 있는데
export에서는 as를 사용하고, export default에서는 as 없이 alias만으로도 지정해서 사용할 수 있다.
해당 ts 파일을 컴파일한 뒤 node로 돌려보면 다음과 같은 결과가 나오는 것을 알 수 있다.
'개발 언어 > TypeScript' 카테고리의 다른 글
[TypeScript] Visual Studio Code와 tsconfig.json으로 TypeScript 개발하기 (0) | 2021.03.09 |
---|---|
07 TypeScript - generic (0) | 2018.04.09 |
06 TypeScript - Class (0) | 2018.04.06 |
05 TypeScript - interface (0) | 2018.04.06 |
04 TypeScript - union (0) | 2018.04.06 |
댓글