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 PointVerificaçã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 propertyPor 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 assignmentAsserçõ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 errorVerificaçã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 }; // OKSomente 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 }; // ErrorAssinaturas 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 }; // OKPropriedades 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' excessPadrõ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 interfaceRecapitulaçã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
- Mecânicas de ampliação e restrição de tipos
- Tipagem contextual: inferência a partir do contexto
- Verificação de propriedades excedentes e atualidade
- Asserções const e as const