Olá pessoal.
Estou trabalhando em desafios de tipo para me aprofundar no TypeScript.
Hoje, gostaria de compartilhar o que aprendi sobre o Pick.
interface Todo { title: string description: string completed: boolean } type TodoPreview = MyPickconst todo: TodoPreview = { title: 'Clean room', completed: false, }
Implemente o Pick genérico integrado sem usá-lo.
Constrói um tipo escolhendo o conjunto de propriedades K de T.
O desafio é criar sua própria versão do tipo de utilitário Pick, que o TypeScript fornece como utilitário padrão.
interface Todo { title: string; description: string; completed: boolean; } type MyPick= { [k in U]: T[k]; }; type TodoPreview = MyPick ; const todo: TodoPreview = { title: "Clean room", completed: false, };
Deixe-me explicar, linha por linha.
Na primeira linha, MyPick recebe dois argumentos: T e U extends keyof T.
T:O tipo base que inclui todas as propriedades.
U estende chave de T:Especifica as propriedades a serem incluídas no tipo de saída.
Sobre a chave de
Sobre extensões
Na segunda linha,
Ele cria um novo tipo que extrai apenas as propriedades especificadas do argumento fornecido.
Sobre tipos mapeados como [k in U]
Como você pode ver abaixo, um novo tipo que exclui a descrição de Todo é criado fornecendo apenas o título e preenchido para MyPick.
Boa codificação☀️
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3