TIR: Typescript | 클래스와 인터페이스 (6) 클래스 - 데코레이터

Lumpen·2023년 2월 6일
0

Typescript

목록 보기
12/17

데코레이터

데코레이터는 타입스크립트의 실험적 기능으로
클래스, 클래스 메서드, 매개변수를 활용한 메타 프로그래밍에
깔끔한 문법을 제공한다

데코레이터는 실험 단계의 기능으로 미래에도 호환된다는 보장이 없다
TSC 플래그를 따로 설정해야 한다
"experimentalDecorators": true 를 설정한 후 사용한다
@serializable
class APIPayload {
	getValue(): Payload {
    	//..
    }
}

클래스 데코레이터인 @serializable 은
클래스를 감싸고 선택적으로 이를 대체하는 새 클래스를 반환한다

데코레이터를 쓰지 않으면 다음과 같이 구현 가능하다

let APIPayload = serialzable(class APIPayload {
	getValue(): Payload {
    	//..
    }
}

타입스크립트는 데코레이터 각각에 대해 주어진 이름 범위에 존재하는
함수와 해당 데코레이터 타입에 요구되는 시그니처를 필요로 한다

타입스크립트가 기본적으로 제공하는 데코레이터는 없고
모두 직접 구현하거나 npm 라이브러리를 설치해야 한다
데코레이터는 특정 시그니처를 만족하는 일반 함수일 뿐이다

데코레이터 기능이 더 완벽해지기 전까지는 일반 함수를 쓰는 것을 권장
데코레이터 공식 문서에서 자세한 내용을 다룬다

profile
떠돌이 생활을 하는. 실업자는 아니지만, 부랑 생활을 하는

0개의 댓글