"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Aventuras TypeScript com desafios de tipo – Escolha do dia

Aventuras TypeScript com desafios de tipo – Escolha do dia

Publicado em 2024-11-03
Navegar:329

Olá pessoal.
Estou trabalhando em desafios de tipo para me aprofundar no TypeScript.

Hoje, gostaria de compartilhar o que aprendi sobre o Pick.

- O desafio -

interface Todo {
  title: string
  description: string
  completed: boolean
}

type TodoPreview = MyPick

const 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.

- Descrição -

O desafio é criar sua própria versão do tipo de utilitário Pick, que o TypeScript fornece como utilitário padrão.

- Minha soluçã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,
};

- Explicação -

Deixe-me explicar, linha por linha.

Na primeira linha, MyPick recebe dois argumentos: T e U extends keyof T.

TypeScript Adventures with type-challenges – Day Pick

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.

TypeScript Adventures with type-challenges – Day Pick

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.

TypeScript Adventures with type-challenges – Day Pick

Boa codificação☀️

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/noah-00/typescript-adventures-with-type-challenges-day-1-pick-5fdj?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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