6 TypeScript tips to turn you into a WIZARD
key optional (?)과 value optional (| undefined)의 차이점을 이해하고, API의 가독성 또는 값 전달의 강제성이라는 목적에 따라 적절히 선택하여 사용한다. 🔑
Pick, Omit 유틸리티 타입은 객체 타입에서 특정 속성을 포함하거나 제외하여 새로운 타입을 생성하며, Exclude, Extract는 유니온 타입에서 특정 멤버를 제거하거나 추출하는 데 사용된다. 🛠️
Pritify 타입 헬퍼를 활용하여 복잡하게 중첩된 인터섹션 타입이나 유틸리티 타입이 적용된 결과를 깔끔하고 가독성 높은 객체 형태로 변환하여 타입 가독성을 크게 향상시킨다. ✨
(KnownUnion | string) & {} 패턴을 사용하여 특정 문자열 유니온에 대한 자동 완성 기능을 제공하면서도 임의의 문자열 입력을 허용하는 유연한 타입을 구현할 수 있다. 💡
- 맵드 타입(
[K in keyof Type])은 기존 객체 타입을 기반으로 각 속성의 값 변경, readonly나 ?와 같은 수정자 추가, as Capitalize<K>와 같은 키 리매핑 등 다양한 변환을 동적으로 수행하는 강력한 도구이다. 🗺️
- 맵드 타입을 사용하여 객체의 키를 판별자(discriminator)로 포함하고 해당 키에 매핑된 값을 결합함으로써, 객체로부터 가독성 높은 판별 유니온(discriminated union)을 효과적으로 생성할 수 있다. 🎯
데브허브 | DEVHUB | 6 TypeScript tips to turn you into a WIZARD