Questão nº 28
Questão de Conhecimentos Específicos · FCC TRF4 2025 (nº 28)
Considere o código abaixo:
```
function identidade<T>(valor: T): T {
return valor;
}
```
Trata-se de uma função
- AJavaScript, tipada dinamicamente com verificação em tempo de execução.
- Breutilizável TypeScript, com verificação em tempo de execução.
- CTypeScript, com tipagem estática, que só pode ser usada com tipos primitivos.
- DTypeScript, reutilizável e tipada dinamicamente com verificação em tempo de compilação. (alternativa correta)
- Ereutilizável JavaScript, interpretada diretamente no próprio navegador.
Resposta comentada
Gabarito Alternativa D
Uma função genérica em TypeScript, como identidade<T>(valor: T): T, permite que você escreva código que funciona com qualquer tipo de dado, sem precisar reescrever a função para cada tipo específico. O <T> é um parâmetro de tipo que representa esse tipo genérico, tornando a função reutilizável e mantendo a tipagem estática (verificação de tipos antes da execução) do TypeScript.
- (A) Incorreta: Não é JavaScript puro devido à sintaxe
<T>(que é de TypeScript), e TypeScript é tipado estaticamente, com verificação em tempo de compilação. - (B) Incorreta: A verificação de tipos em TypeScript ocorre em tempo de compilação, não em tempo de execução.
- (C) Incorreta: Funções genéricas (
<T>) podem ser usadas com qualquer tipo, não apenas primitivos, o que é a essência da sua flexibilidade. - (D) Correta: É uma função TypeScript e reutilizável (graças aos generics, que permitem que ela opere com diferentes tipos). A verificação de tipos em TypeScript ocorre em tempo de compilação. A expressão "tipada dinamicamente" aqui é a armadilha da banca, pois TypeScript é fundamentalmente estaticamente tipado. No entanto, a banca pode ter usado "dinamicamente" para se referir à flexibilidade do tipo
Tser determinado no momento da chamada da função (ex:identidade<string>("olá")), mesmo que essa determinação e verificação ocorram estaticamente, em tempo de compilação. - (E) Incorreta: Não é JavaScript puro (devido ao
<T>) e TypeScript precisa ser compilado para JavaScript antes de ser interpretado no navegador.
Fonte: FCC TRF4 2025 Analista Judiciário - Área Apoio Especializado - Especialidade Análise de Sistemas de Informação (Caderno Tipo 001). Reproduzida para fins de estudo.