TypeScript · Intermediário · Inglês · Técnico
mapped types
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