0Pricing
TypeScript Academy · Aula

Verificação de propriedades excedentes e atualidade

Explore por que propriedades excedentes geram erros em alguns contextos

Verificação de propriedades excedentes e atualidade é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 3 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.

O que é o frescor?

Frescor é um conceito do TypeScript segundo o qual os literais de objeto são considerados "frescos" no momento de sua criação. Objetos frescos passam por uma verificação rigorosa de propriedades excedentes, que não se aplica a objetos alargados.

interface Point { x: number; y: number; }
const p: Point = { x: 1, y: 2, z: 3 }; // Error: 'z' not in Point

Verificação de propriedades excedentes na prática

Quando você atribui um literal de objeto diretamente a uma variável tipada ou o passa como argumento de uma função, o TypeScript informa as propriedades adicionais que não existem no tipo de destino.

function setPoint(p: { x: number; y: number }) {}
setPoint({ x: 1, y: 2, z: 3 }); // Error: 'z' excess property

Por que existe a verificação de propriedades excedentes

Ela detecta erros de digitação e propriedades não intencionais em objetos de configuração, uma fonte comum de erros em JavaScript.

interface Options { timeout: number; retry?: boolean; }
const opts: Options = { timeout: 3000, retrey: true }; // Error — typo!

Como o frescor é perdido

Depois que um literal de objeto é atribuído a uma variável intermediária, ele deixa de ser "fresco", e a verificação de propriedades excedentes não se aplica ao tipo alargado.

const opts = { timeout: 3000, retry: true, extra: "surprise" };
const o: Options = opts; // No error — freshness lost on assignment

Asserções de tipo ignoram o frescor

Usar asserções de tipo com as também ignora as verificações de propriedades excedentes, o que pode ocultar erros.

const o = { timeout: 3000, typo: true } as Options; // No error

Verificação de propriedades excedentes com tipos de interseção

Os tipos de interseção às vezes podem flexibilizar as verificações de propriedades excedentes, pois as propriedades adicionais podem pertencer a um dos membros da interseção.

type A = { x: number };
type B = { y: number };
const ab: A & B = { x: 1, y: 2 }; // OK

Somente leitura e propriedades excedentes

A verificação de propriedades excedentes também se aplica a tipos de objeto somente leitura — a regra diz respeito à estrutura, e não à mutabilidade.

interface Cfg { readonly host: string; }
const c: Cfg = { host: "localhost", port: 3000 }; // Error

Assinaturas de índice e propriedades excedentes

Adicionar uma assinatura de índice a um tipo permite quaisquer propriedades adicionais indexadas por chaves de texto, desativando efetivamente a verificação de propriedades excedentes para esse tipo.

interface Flexible { name: string; [key: string]: unknown; }
const f: Flexible = { name: "ts", extra: true }; // OK

Propriedades opcionais e frescor

Propriedades opcionais não flexibilizam a verificação de propriedades excedentes. Uma propriedade que não está listada — nem mesmo como opcional — ainda é informada como excedente.

interface Shape { color?: string; }
const s: Shape = { color: "red", size: 10 }; // Error: 'size' excess

Padrões práticos

Para passar propriedades de configuração adicionais por uma interface tipada sem erros, use uma variável intermediária ou uma assinatura de índice na interface.

// Option 1: intermediate variable (freshness lost)
const cfg = { timeout: 3000, debugMode: true };
const o: Options = cfg;
// Option 2: index signature in interface

Recapitulação: frescor

O frescor se aplica a literais de objeto frescos, permitindo a verificação de propriedades excedentes no momento da atribuição. Atribua o objeto a uma variável intermediária ou use uma assinatura de índice para permitir propriedades adicionais.

Verificação rápida

Quando a verificação de propriedades excedentes não se aplica (NOT)?

O que você aprendeu

O frescor e a verificação de propriedades excedentes protegem você contra erros de digitação e propriedades não intencionais em literais de objeto. Entenda quando o frescor é perdido para evitar erros de tipo inesperados ou erros ocultos.

Perguntas Frequentes

A aula “Verificação de propriedades excedentes e atualidade” é grátis?

Sim — o texto completo de “Verificação de propriedades excedentes e atualidade” é 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 “Verificação de propriedades excedentes e atualidade”?

Explore por que propriedades excedentes geram erros em alguns contextos 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 3 de 4.

Quanto tempo leva a aula “Verificação de propriedades excedentes e atualidade”?

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. Mecânicas de ampliação e restrição de tipos
  2. Tipagem contextual: inferência a partir do contexto
  3. Verificação de propriedades excedentes e atualidade
  4. Asserções const e as const
← Voltar para TypeScript Academy