Questão nº 60
Questão de Tecnologia da Informação · CESGRANRIO BB 01/2022 (nº 60)
O código abaixo está em linguagem TypeScrip, cuja tipagem é estática.
```typescript
let fraseLegal = 'Bom dia!';
fraseLegal = 9.5;
```
Analisando o código apresentado, tem-se que a TypeScrip
- Anão realiza a inferência de tipo, por isso, o código apresentado vai rodar sem erro.
- Brealiza a inferência de tipo, por isso, o código apresentado vai rodar sem erro.
- Crealiza a inferência de tipo, por isso, aceita a atribuição do tipo number para um tipo string sem gerar erro de compilação do código apresentado.
- Drealiza a inferência de tipo, por isso, não aceita a atribuição do tipo number para um tipo string, o que vai gerar um erro de compilação do código apresentado. (alternativa correta)
- Enão diferencia valores ponto flutuante (decimal) de valores inteiros, por isso, o código apresentado vai rodar sem erro.
Resposta comentada
Gabarito Alternativa D
Conceito-chave: O TypeScript usa inferência de tipo: quando você cria uma variável com let e um valor inicial, ele "adivinha" e trava aquele tipo para sempre. Depois, qualquer atribuição de outro tipo (como number para string) é um erro de compilação — o código nem chega a rodar.
- (A) Incorreta: O TypeScript realiza inferência de tipo, e o código não roda sem erro — ele quebra na compilação.
- (B) Incorreta: Ele realiza inferência, mas não aceita a troca de tipo; o código gera erro de compilação, não roda.
- (C) Incorreta: A inferência existe, mas não aceita atribuir
numberparastring; isso é justamente o que causa o erro de compilação. - (D) Correta: O TypeScript infere
fraseLegalcomostringe, ao tentar atribuir9.5(tiponumber), ele rejeita a atribuição, gerando erro de compilação — exatamente o que o gabarito oficial manda. - (E) Incorreta: O TypeScript diferencia
number(incluindo decimais) destring; a confusão entre inteiro e decimal é irrelevante aqui, pois o erro é entre tipos diferentes.
Armadilha da banca: A pegadinha está na letra (C): ela parece correta porque menciona "inferência de tipo", mas inverte o resultado — diz que o TypeScript aceita a atribuição, quando na verdade ele rejeita. O aluno que só lembra que "TypeScript infere tipo" marca (C) sem perceber que a inferência serve justamente para bloquear a troca de tipo, não para permiti-la.
Fonte: CESGRANRIO BB 01/2022 Escriturário - Agente de Tecnologia (Caderno Gabarito 1). Reproduzida para fins de estudo.