type Aliases de tipo (type)
Última atualização: 2026-10-22
type Aliases de tipo (type)
type dá nome a qualquer tipo — objetos, uniões, tuplas, funções, literais — sendo a forma mais geral de nomear tipos, ao lado de interface.
| Grupo | Composição de Tipos |
|---|---|
| Tipo | Sintaxe |
| 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
type ID = string | number;
type Point = { x: number; y: number };
const origin: Point = { x: 0, y: 0 };
⚙️ Parâmetros
| type X = T | O lado direito do = pode ser qualquer expressão de tipo: uniões, interseções, tuplas, condicionais |
|---|
Retorno:Nenhum valor de retorno — type existe apenas na camada de tipos e desaparece após a compilação.
▶ Exemplo
Edite o código abaixo e clique em Testar para ver o resultado transpilado:
Saída:
#42 #A1 0 0
(Saída de execução após a transpilação; adicionar z: 1 a origin dispara a verificação de propriedades excedentes)
💡 Observações
ℹ️ Info type expressa uniões, tuplas e tipos mapeados e condicionais que interface não consegue; o declaration merging exclusivo de interface não existe em type.
💡 Dica Nomear formas complexas encurta as mensagens de erro — os erros mostram o alias, não um muro de estrutura.
⚠️ Atenção Declarações type com o mesmo nome colidem (erro de definição duplicada) — diferente da mesclagem de interfaces; empilhe extensões via intersection types.
🏷️ Composição de Tipos Relacionada
💡 Casos relacionados
Mais casos em breve.
📚 Tutoriais relacionados
❓ Perguntas frequentes
P type ou interface — qual escolher?
R Escolha um por equipe. Regra prática: interface para formas simples de objetos que podem ser mescladas/estendidas; type sempre que houver uniões ou composição com utility types.
P Um type pode se referenciar recursivamente?
R Sim — type JSON = string | number | boolean | null | JSON[] | { [k: string]: JSON }. interface também suporta recursão.
P Nomes de type afetam o runtime?
R Não. type é apenas um alias em tempo de compilação, totalmente apagado após a transpilação — apenas valores existem em runtime.