ExpertiDict

TypeScript · Intermediário · Inglês · Técnico

mapped types

/mæpt taɪps/substantivo

Tipos que percorrem as chaves de outro com { [K in keyof T]: ... } e transformam cada propriedade num novo tipo. Partial e Record são mapped types.

Onde usar

Aparecem ao derivar variações de um tipo, como uma versão em que todo campo vira uma função de validação. Ensinam a pensar em tipos como funções de tipos.

Em código

type Validadores<T> = {
  [K in keyof T]: (v: T[K]) => boolean;
};
interface U { nome: string; idade: number }
const v: Validadores<U> = {
  nome: (s) => s.length > 0,
  idade: (n) => n >= 0,
};

Exemplos

Build a mapped type where every field becomes a validator.

Monte um mapped type em que cada campo vira um validador.

Partial is just a mapped type with a question mark.

Partial é só um mapped type com um ponto de interrogação.

Cuidado

Não confunda com o método map de arrays: aqui é uma transformação de tipos feita só na compilação, que não cria nenhum objeto.

Sinônimos

tipos mapeados

Veja também

Todos os termos de TypeScript