TIL: Typescript | namespace

Lumpen·2023년 1월 28일
0

Typescript

목록 보기
9/17

namespace

type의 종류와 상관 없이 코드를 그룹화 할 수 있다
변수, 함수, 객체 등
일반적인 타입과 달리 값을 가질 수 있다

같은 이름을 가진 타입을 재사용하거나
모듈 단위로 분리할 때 사용하면 좋을 것 같다
한 파일 안에서 공간을 분리할 때 등

한 파일(모듈) 내에 네임스페이스가 하나 뿐이라면 사용하면 안된다

네임스페이스는 자바스크립트로 컴파일될 경우 class 객체를 생성한다
복잡한 애플리케이션의 경우 namespace를 해칠 수 있기 때문에 사용을 자제하는
것이 좋다 (자동 병합이 되기 때문이 아닐까..)

interface 처럼 같은 이름으로 재작성 시 자동 병합이 일어나지만
export 해야 외부에서 값을 참조할 수 있다
export 하지 않으면 내부에서만 참조가 가능해 캡슐화를 구현할 수 있을 것으로 보인다

외부에서 참조할 때는 import 문을 사용한다

namespace A {
	const a = 1;
  	export const getA = () => {
    	return a; // export 를 안해도 참조 가능
    }
}

namespace B {
    export b = 1;
	export const getB = () => {
   		return b;
    }
}

A.a // 참조 에러
B.b // 1

A.getA() // 1
B.getA() // 1
profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글