contextual Tipagem contextual
Última atualização: 2026-10-22
contextual Tipagem contextual
Tipagem contextual: quando um literal de função está numa posição cujo tipo já é conhecido (anotação de variável, callback de método de array, handler de evento), o TS deduz os tipos dos parâmetros de trás para frente — sem precisar de anotações. Em map((o) => o.id), o tem tipo não pela função em si, mas pelo tipo dos elementos do array, ou seja, pelo contexto.
| Grupo | Funções e Classes |
|---|---|
| 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
const orders: Order[] = [];
// O parâmetro o do callback obtém o tipo contextual Order do tipo de elemento de orders
const summaries = orders.map((o) => `#${o.id}: ${o.total}`);
// A anotação de variável também fornece contexto
type ClickHandler = (event: { x: number; y: number }) => void;
const onClick: ClickHandler = (event) => console.log(event.x, event.y);
⚙️ Parâmetros
| const x: T = ... | Posições que o disparam: anotações de variável/parâmetro, elementos de array, argumentos de chamada (via o tipo do parâmetro formal), expressões return (contra o tipo de retorno declarado) |
|---|---|
| (x) => ... | Parâmetros de callback sem tipo recebem o tipo contextual; anotações explícitas precisam ser compatíveis com ele ou geram erro |
Retorno:Expressões return também são verificadas pelo contexto: o tipo de retorno declarado valida cada return, pegando cedo ramificações que faltaram.
▶ Exemplo
Edite o código abaixo e clique em Testar para ver o resultado transpilado:
Saída:
#101: 250, #102: 90, #103: 480
2
click @ 12,34
(Saída de execução após a transpilação; escrever o.pric (nome de propriedade errado) no callback gera erro de compilação imediato — o tipo contextual não permite)