Show GN: DeepStrictTypes: 복잡한 TypeScript 타입을 더욱 쉽게 다루기
(github.com/kakasoo)DeepStrictTypes는 중첩된 객체를 더 안전하고 편리하게 다룰 수 있도록 만든 TypeScript 유틸리티 타입 모음이에요.
기존 Omit
이나 Pick
을 쓰면 깊숙이 들어간 속성을 깔끔하게 처리하기 어려운데, DeepStrictOmit
과 DeepStrictPick
을 사용하면 원하는 부분만 쏙쏙 골라낼 수 있어요.
예를 들면, { user: { name: string; age: number } }
타입에서 DeepStrictOmit<Example, 'user.name'>
을 쓰면 { user: { age: number } }
처럼 정확하게 변형돼요. 반대로 DeepStrictPick<Example, 'user.name'>
을 쓰면 { user: { name: string } }
처럼 필요한 부분만 남길 수도 있고요.
이게 왜 필요하냐면,
✔️ API 응답에서 특정 필드만 필터링할 때
✔️ 중첩된 객체에서 원하는 부분만 남기고 싶을 때
실험적으로 deepStrictObjectKeys
, deepStrictAssert
같은 런타임 유틸리티도 추가했어요.
한번 써보고 피드백 주시면 좋겠어요! 오픈소스에 대한 관심은 제작자에게 힘이 됩니다!
저는 광고 도메인에서 일할 때 많이 썼습니다... :)
Facebook, Google... 어쨌든지 간에 결국 광고 도메인은 약간 씩만 다르고 거의 비슷한 타입들로 추상화할 수 있어서, 서로 다른 서비스를 한 도메인으로 묶을 때 쓰곤 했죠.