TypeScript

[TypeScript] Mapped Type

임호랑이 2021. 11. 9. 13:01

비디오 라는 타입을 열심히 다른곳 에서 쓰고있다가

갑자기 비디오 타입에 속성을 변경하고 싶을때 

쓰고있는 다른곳에는 영향을 안주고 바꾸는 방법이 있다

바로 Mapped Type 이다.

 

만약 위의 비디오라는 타입에서 타입들을 모두 옵셔널 타입으로 바꾸고싶다면

요렇게 물음표를 붙힌 새로운 타입을 만들 수도 있겠지만 

그렇다면 기본 비디오 라는 타입에 새로운 타입이 생성되면 비디오2 에도 똑같이 계속

추가해 주어야 하는 문제점이 있다.

 

요것이 매퍼 타입이다. 

받아온 T 타입안의 요소들을 루프를 돌며 인덱스 타입을 이용해서 다시한번 지정해주는 방법이다.

위의 옵셔널이라는 타입은 말 그대로 물음표를 붙혀서 받아온 타입들을 모두 옵셔널로 바꿔주는 타입이다.

 

요런식으로 옵셔널 타입에 제네릭으로 사용할 타입을 넣어주면 된다.

리드온리나 null 추가 도 요런식으로 사용할 수 있다.

// 이미 타입스크립트에서 만들어놓은 리드온리 픽 등등 많은 녀석들이 있다고한다..