11 pontos por kakasoo 2025-03-13 | 10 comentários | Compartilhar no WhatsApp

DeepStrictTypes é uma coleção de tipos utilitários de TypeScript criada para lidar com objetos aninhados de forma mais segura e conveniente.

Ao usar Omit ou Pick, fica difícil tratar de forma limpa propriedades muito profundas, mas com DeepStrictOmit e DeepStrictPick você pode selecionar exatamente as partes desejadas.

Por exemplo, no tipo { user: { name: string; age: number } }, ao usar DeepStrictOmit<Example, 'user.name'>, ele é transformado com precisão em algo como { user: { age: number } }. Já com DeepStrictPick<Example, 'user.name'>, também dá para manter apenas a parte necessária, como { user: { name: string } }.

Por que isso é útil?
✔️ Ao filtrar apenas campos específicos em respostas de API
✔️ Quando você quer manter apenas as partes desejadas em objetos aninhados

Também foram adicionados, de forma experimental, utilitários de runtime como deepStrictObjectKeys e deepStrictAssert.

Se você testar e mandar feedback, seria ótimo! O interesse em projetos open source dá força para quem cria!

10 comentários

 
metis041 2025-03-14

TypeScript é sempre uma ótima pedida

 
kakasoo 2025-03-14

Você conhece a genialidade do TypeScript, obrigado.

 
kakasoo 2025-03-14

Obrigado!

 
softer 2025-03-14

Joinha recomendado

 
kakasoo 2025-03-14

Valeu pelo joinha e pela recomendação

 
sunrabbit 2025-03-13

Fico me perguntando se existe alguém que use tipos de forma tão extrema assim
Agora fiquei curioso para ver casos reais de uso

 
kakasoo 2025-03-13

Eu usei bastante isso quando trabalhava no domínio de publicidade... :)
Facebook, Google... de qualquer forma, no fim o domínio de publicidade tem diferenças pequenas e quase sempre dá para abstraí-lo com tipos bem parecidos, então eu costumava usar isso ao agrupar serviços diferentes em um único domínio.

 
wogns3623 2025-03-14

Parece que esse tipo de abordagem é usado com bastante frequência quando se manipula de várias formas tipos de registros de dados do banco de dados no servidor

 
kakasoo 2025-03-14

Isso mesmo. Na verdade, não consigo muita identificação por parte do pessoal de front-end.