11P by kakasoo 20일전 | ★ favorite | 댓글 10개

DeepStrictTypes는 중첩된 객체를 더 안전하고 편리하게 다룰 수 있도록 만든 TypeScript 유틸리티 타입 모음이에요.

기존 Omit이나 Pick을 쓰면 깊숙이 들어간 속성을 깔끔하게 처리하기 어려운데, DeepStrictOmitDeepStrictPick을 사용하면 원하는 부분만 쏙쏙 골라낼 수 있어요.

예를 들면, { user: { name: string; age: number } } 타입에서 DeepStrictOmit<Example, 'user.name'>을 쓰면 { user: { age: number } }처럼 정확하게 변형돼요. 반대로 DeepStrictPick<Example, 'user.name'>을 쓰면 { user: { name: string } }처럼 필요한 부분만 남길 수도 있고요.

이게 왜 필요하냐면,
✔️ API 응답에서 특정 필드만 필터링할 때
✔️ 중첩된 객체에서 원하는 부분만 남기고 싶을 때

실험적으로 deepStrictObjectKeys, deepStrictAssert 같은 런타임 유틸리티도 추가했어요.

한번 써보고 피드백 주시면 좋겠어요! 오픈소스에 대한 관심은 제작자에게 힘이 됩니다!

따봉추 감사합니다

타입스크립트는 언제나 개추야

타입스크립트의 멋짐을 아는 당신, 감사합니다.

감사합니다!

이정도로 타입을 심하게 쓰는 사람이 있을까 싶은데
실 사용례가 궁금해지네요

저는 광고 도메인에서 일할 때 많이 썼습니다... :)
Facebook, Google... 어쨌든지 간에 결국 광고 도메인은 약간 씩만 다르고 거의 비슷한 타입들로 추상화할 수 있어서, 서로 다른 서비스를 한 도메인으로 묶을 때 쓰곤 했죠.

서버에서 db 데이터 레코드 타입을 요리조리 가공할 때 저런식으로 자주 사용하는 것 같습니다

맞습니다. 사실 프론트 분들께는 공감을 많이 못얻더라구요.