ANÚNCIO

~/questoes/programacao

O que é type inference em TypeScript?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Questão 1 Não respondida

O que é type inference em TypeScript?

Programação Type System Intermediario
Aula de referência Curso de TypeScript para iniciantes: aprenda TypeScript na prática
Para fixar

Type Inference em TypeScript: Como o compilador deduz tipos automaticamente

Conceito central

Type inference é a capacidade do TypeScript de descobrir automaticamente qual é o tipo de uma variável observando o valor que você atribui a ela, sem você precisar escrever a anotação de tipo explicitamente. Isso torna o código mais limpo e legível, especialmente em situações simples onde o tipo é óbvio.

Por que essa resposta faz sentido

A alternativa correta está certa porque type inference funciona exatamente assim: o compilador TypeScript analisa o valor inicial atribuído à variável e deduz qual tipo ela deve ter. Por exemplo, se você escreve `let nome = "João"`, o TypeScript automaticamente sabe que `nome` é do tipo `string`, sem você precisar escrever `let nome: string = "João"`.

Armadilhas comuns

  • Confundir type inference com conversão automática de tipos — type inference apenas deduz o tipo, não transforma valores de um tipo em outro
  • Achar que type inference significa que TypeScript não verifica tipos — na verdade, após deduzir o tipo, TypeScript é rigoroso e reclama se você usar a variável de forma incorreta
  • Pensar que type inference só funciona em situações simples — o TypeScript consegue deduzir tipos complexos inclusive em retornos de funções e estruturas aninhadas

Entenda as alternativas

A

Exatamente isso! Type inference permite que o compilador deduzir o tipo pela atribuição inicial. Se você atribui um número, TypeScript entende que é `number`. Se atribui texto, entende que é `string`. Nenhuma anotação extra necessária.

B

Isso descreve herança múltipla, que é um conceito completamente diferente e nem mesmo é o foco do TypeScript (TypeScript não suporta herança múltipla de classes, apenas de interfaces). Type inference não tem nada a ver com herança.

C

Essa descrição fala sobre conversão automática de tipos, o que seria um recurso perigoso e não é o que type inference faz. TypeScript é bem rigoroso: se você tenta usar um tipo errado, ele gera um erro. Type inference apenas deduz, não converte.

D

Type inference não é sobre compilação em tempo de execução. Na verdade, é o oposto: TypeScript faz análise estática de tipos em tempo de desenvolvimento, antes de compilar. O compilador deduz tipos durante essa análise estática.

Dica prática: Use type inference para variáveis com atribuições óbvias (como `let contador = 0` ou `let ativo = true`), mas continue anotando tipos explicitamente em parâmetros de funções e retornos — isso torna seu código mais claro para quem o lê depois e previne confusões sobre qual tipo é esperado.

Revise pensando: Se você escrever `let resultado = 42`, qual tipo o TypeScript deduzirá automaticamente para a variável `resultado`?