A & B Tipos de interseção
Última atualização: 2026-10-22
A & B Tipos de interseção
Uma interseção A & B mescla vários tipos: o valor deve satisfazer A e B simultaneamente. Ótima para composição em estilo mixin de pequenas interfaces.
| 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
type A = { id: number };
type B = { name: string };
type AB = A & B; // tem id e name ao mesmo tempo
⚙️ Parâmetros
| A & B | & junta qualquer número de tipos; mais membros significa restrições mais rígidas (um tipo mais estreito) |
|---|
Retorno:Nenhum valor de retorno — tipos de interseção existem apenas na camada de tipos e desaparecem após a compilação.
▶ Exemplo
Edite o código abaixo e clique em Testar para ver o resultado transpilado:
Saída:
7 login 2026-01-01T09:00:00Z
(Saída de execução após a transpilação; omitir timestamp de audit é um erro de compilação — interseções exigem todos os membros)
💡 Observações
ℹ️ Info Interseção é E, união é OU: A & B exige ambos (mais estreito), A | B aceita qualquer um (mais largo).
⚠️ Atenção Interseções de primitivos são never (string & number não tem membros); propriedades homônimas em conflito também se intersectam, geralmente produzindo never.
💡 Dica Interseções brilham com utility types: User & Partial<User> expressa elegantemente "base mais sobrescrita parcial".
🏷️ Composição de Tipos Relacionada
💡 Casos relacionados
Mais casos em breve.
📚 Tutoriais relacionados
❓ Perguntas frequentes
P Interseção vs interface extends?
R Resultado semelhante, mecanismos diferentes: extends herda formas de interface/tipo e dá erro em conflitos; & compõe qualquer expressão de tipo (incluindo resultados de utilitários) e resolve conflitos silenciosamente para never. Use extends para erros mais claros.
P O que é string & number?
R never — nenhum valor é ao mesmo tempo string e number. Interseções de primitivos são quase sempre never, o que também serve para codificar impossibilidade.
P O que acontece quando duas interfaces em interseção compartilham uma propriedade com tipos diferentes?
R O tipo da propriedade se torna a interseção dos dois lados. string & number é imediatamente never e toda atribuição falha; verifique os tipos dos campos antes de compor com &.