DeepStrictTypes: lidando com tipos complexos de TypeScript com mais facilidade
(github.com/kakasoo)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
TypeScript é sempre uma ótima pedida
Você conhece a genialidade do TypeScript, obrigado.
https://github.com/sindresorhus/type-fest
Obrigado!
Joinha recomendado
Valeu pelo joinha e pela recomendação
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
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.
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
Isso mesmo. Na verdade, não consigo muita identificação por parte do pessoal de front-end.