~/questoes/programacao
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.
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"`.
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.
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.
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.
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.