기존에 정의되어 있는 타입을 새로운 타입으로 변환해주는 문법이다.
자바스크립트
map()
API함수를 타입에 적용한 것과 같은 효과를 가진다.
색상을 묶어주는 Color
라는 타입이 있다.
여기서 네개의 색상 각각 번호를 붙인 객체를 만들고자 할때 다음과 같이 변환 할수 있다.
[K in Color]
부분은 자바스크립트의 for in
문법과 유사하게 동작 한다. Color
타입의 4개의 문자열을 각각 순회하여 타입을 number
로 정의 해 준다.
RED부분은 문자열로 되어있는데 RED: number
이므로 오류가 나게 된다.
위의 코드는 키와 값으로 이루어진 객체를 정의 하는 타입을 받아 부분 집합을 만족하는 타입으로 변환해주는 문법이다(옵셔널 타입)
Person
과 같은 인터페이스에 Subset
타입을 적용하면 아래와 같이 객체를 정의 할수 있다.
참고