0Pricing
TypeScript Academy · Aula

Tipos mapeados com +/-readonly e +/-?

Explore tipos mapeados e modificadores (+/-readonly, +/-optional) para criar variações flexíveis de estruturas de objetos.

Tipos mapeados com +/-readonly e +/-? é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 1 de 3. 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 3 aulas no total.

Introdução

Objetivo: aprender tipos mapeados com modificadores para alterar propriedades de objetos sistematicamente. Eles permitem criar versões somente leitura, opcionais ou obrigatórias dos tipos.

Tipo mapeado básico

Um tipo mapeado percorre as chaves e reutiliza os tipos das propriedades. Essa é a base para transformações.

type Options = { a: string; b: number }

type Clone<T> = { [K in keyof T]: T[K] }

type Copy = Clone<Options>  // { a: string; b: number }

Adicionar imutabilidade

Use +readonly para forçar a imutabilidade. Todas as propriedades se tornam somente leitura.

type ReadonlyT<T> = { [K in keyof T]+readonly: T[K] }

interface User { id: number; name: string }

type Locked = ReadonlyT<User>  // all props readonly

Remover imutabilidade

Use -readonly para remover a imutabilidade e restaurar a mutabilidade.

type Mutable<T> = { [K in keyof T]-readonly: T[K] }

type Editable = Mutable<Locked>  // props writable again

Adicionar opcionalidade

? após a propriedade indica que ela é opcional. Isso é útil para atualizações de configurações.

type PartialT<T> = { [K in keyof T]?: T[K] }

interface Settings { dark: boolean; lang: string }

type Maybe = PartialT<Settings>  // props optional

Remover opcionalidade

Use -? para remover a opcionalidade e exigir a presença das propriedades.

type RequiredT<T> = { [K in keyof T]-?: T[K] }

type Strict = RequiredT<Maybe>  // props required again

Verificação da remoção da imutabilidade

Verificação rápida: qual sintaxe de tipo mapeado remove a imutabilidade das propriedades?

Recapitulação

Recapitulação: os tipos mapeados permitem aplicar transformações a várias propriedades: +/-readonly, +/-? para mutabilidade e opcionalidade. Eles são a base de Partial, Required e Readonly.

Perguntas Frequentes

A aula “Tipos mapeados com +/-readonly e +/-?” é grátis?

Sim — o texto completo de “Tipos mapeados com +/-readonly e +/-?” é 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 3 aulas no total.

O que vou aprender em “Tipos mapeados com +/-readonly e +/-?”?

Explore tipos mapeados e modificadores (+/-readonly, +/-optional) para criar variações flexíveis de estruturas de objetos. 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 3.

Quanto tempo leva a aula “Tipos mapeados com +/-readonly e +/-?”?

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 com +/-readonly e +/-?
  2. Remapeamento de chaves e tipos de literais de modelo
  3. Tipagem de padrões de texto (parâmetros de rotas, nomes de eventos)
← Voltar para TypeScript Academy