0Pricing
TypeScript Academy · Aula

Tipos mapeados: transformando tipos de objetos

Percorra as chaves para criar novos formatos de tipos

Tipos mapeados: transformando tipos de objetos é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 4 aulas no total.

Boas-vindas

Os tipos mapeados iteram sobre as chaves de um tipo para criar novos tipos com propriedades transformadas. Eles são a base de Partial, Readonly, Record e muitos outros utilitários.

Sintaxe básica de tipos mapeados

Use `[K in keyof T]` para iterar sobre todas as chaves de T e produzir um novo tipo.
type Copy<T> = { [K in keyof T]: T[K] };
type UserCopy = Copy<User>; // same as User

Tornando todas as propriedades opcionais

É assim que Partial é implementado: adicione ? a cada propriedade.
type Partial<T> = { [K in keyof T]?: T[K] };
type PartialUser = Partial<User>;

Tornando todas as propriedades somente leitura

Adicione `readonly` a cada propriedade no tipo mapeado.
type Readonly<T> = { readonly [K in keyof T]: T[K] };
type FrozenUser = Readonly<User>;

Transformando tipos de valores

Altere o tipo do valor de cada propriedade, mantendo as chaves.
type Stringify<T> = { [K in keyof T]: string };
type StringUser = Stringify<User>; // all values are string

Filtrando propriedades com never

Use uma condição na posição do valor e filtre com never por meio do remapeamento de chaves.
type OnlyStrings<T> = {
  [K in keyof T as T[K] extends string ? K : never]: T[K]
};

Record<K, V>

Record cria um tipo de objeto com chaves e tipos de valores específicos.
type Record<K extends string | number | symbol, V> = { [P in K]: V };
const roles: Record<'admin' | 'user', boolean> = { admin: true, user: false };

Tipos mapeados preservam a opcionalidade

Por padrão, os tipos mapeados preservam os modificadores de opcionalidade e readonly do tipo de origem.
interface User { id: number; name?: string; }
type Copy<T> = { [K in keyof T]: T[K] };
type C = Copy<User>; // id: number; name?: string (preserved)

Remapeamento de chaves com as

Remapeie as chaves para novos nomes usando `as` no tipo mapeado.
type Getters<T> = {
  [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K]
};

Iterando sobre uma união

Faça o mapeamento sobre um tipo união, em vez de keyof T, para criar tipos de objeto a partir de uniões.
type Flags = { [K in 'option1' | 'option2' | 'option3']: boolean };

Combinando tipos mapeados e condicionais

Os tipos mapeados e condicionais se combinam naturalmente para produzir transformações sofisticadas.
type NullableValues<T> = { [K in keyof T]: T[K] | null };

Verificação rápida

O que `{ [K in keyof T]?: T[K] }` produz?

Recapitulação

Os tipos mapeados iteram sobre chaves para criar novos tipos. Eles podem adicionar ou remover readonly e ?, transformar tipos de valores, filtrar chaves com never e remapear chaves com as. Eles dão suporte a todos os tipos utilitários integrados do TypeScript.

Perguntas Frequentes

A aula “Tipos mapeados: transformando tipos de objetos” é grátis?

Sim — o texto completo de “Tipos mapeados: transformando tipos de objetos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 4 aulas no total.

O que vou aprender em “Tipos mapeados: transformando tipos de objetos”?

Percorra as chaves para criar novos formatos de tipos Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar TypeScript Academy?

Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Tipos mapeados: transformando tipos de objetos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de TypeScript Academy?

Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Tipos mapeados: transformando tipos de objetos
  2. Modificadores em tipos mapeados: readonly e ?
  3. Tipos literais de modelo: padrões de texto
  4. Remapeamento de chaves com as em tipos mapeados
← Voltar para TypeScript Academy