object type Tipos de objeto
Última atualização: 2026-10-22
object type Tipos de objeto
Tipos de objeto descrevem um objeto por meio de pares "propriedade: tipo": use inline para uso único, ou nomeie com interface ou type para reutilização. O TS julga a compatibilidade pela forma (shape).
| Grupo | Composição de Tipos |
|---|---|
| Tipo | Tipo |
| Modo strict | Não necessário |
ℹ️ Info O editor transpila TypeScript para JavaScript e o executa (sem verificação de tipos); veja a Saída de cada exemplo para o resultado da verificação.
📝 Sintaxe
const user: { id: number; name: string; tags?: string[] } = {
id: 1,
name: "Ada",
};
⚙️ Parâmetros
| { name: string } | Declarações de propriedades separadas por ; ou , cujos tipos de valor podem ser qualquer coisa (incluindo objetos aninhados) |
|---|---|
| ?/readonly | Os modificadores optional e readonly também se aplicam a tipos de objeto inline |
Retorno:Nenhum valor de retorno — tipos de objeto existem apenas na camada de tipos e não produzem código em tempo de execução.
▶ Exemplo
Edite o código abaixo e clique em Testar para ver o resultado transpilado:
Saída:
5 no label
(Saída de execução após a transpilação; adicionar um campo z ausente no tipo dispara a verificação de propriedades excedentes)
💡 Observações
ℹ️ Info O TS é estruturalmente tipado: forma compatível significa compatível — sem exigência de herança explícita (duck typing).
💡 Dica Quando uma forma é referenciada duas vezes ou mais, extraia-a para uma interface/type: erros mais curtos e edição em ponto único.
⚠️ Atenção Literais de objeto disparam a verificação de propriedades excedentes: campos desconhecidos dão erro imediato; atribuir por meio de uma variável intermediária contorna a checagem.
🏷️ Composição de Tipos Relacionada
💡 Casos relacionados
Mais casos em breve.
📚 Tutoriais relacionados
❓ Perguntas frequentes
P O que é tipagem estrutural (duck typing)?
R A compatibilidade depende apenas de ter as propriedades exigidas com os tipos corretos, não de onde foram declaradas. {x: 1, y: 2, z: 3} se encaixa perfeitamente em {x: number; y: number}.
P Tipo de objeto inline ou interface?
R Inline para formas simples de uso único; use interface/type para reutilização, extensão e dicas nomeadas no IDE.
P Como anotar parâmetros que são objetos?
R Escreva a forma inline: function draw(p: { x: number; y: number }) {}. Para formas complexas, defina uma interface antes.