Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FGV 2024

ProgramaçãoLinguagens de programação
Código
fg098589
Banca
FGV
Órgão
TJ-MS
Ano
2024
Nível
Superior
Cargo
Técnico de Nível Superior - Analista de Sistemas Computacionais - Web Designer
Observe o seguinte script em TypeScript:interface Tribunal {sigla: string;id: integer;}const tjms: Tribunal = {id: 4,sigla: "TJMS"}Ao ser executado em um interpretador com TypeScript na versão 4 ou mais recente, o script acima imprime um erro indicando:
  1. Aa indefinição do nome ‘string’;
  2. Ba indefinição do nome ‘integer’;
  3. Ca indefinição do nome ‘interface’;
  4. Do uso inesperado de ‘;’ ao declarar Tribunal;
  5. Ea atribuição indevida do id de tjms antes da sigla;
Revelar gabarito e comentário

GabaritoB — a indefinição do nome ‘integer’;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Erro em TypeScript: tipo inexistente 'integer'

Gabarito: letra B. O erro ocorre porque integer não é um tipo nativo do TypeScript; a linguagem utiliza number para representar valores numéricos, sejam inteiros ou decimais. Ao declarar id: integer;, o compilador não reconhece o nome integer e emite um erro de indefinição.

A banca testa o conhecimento dos tipos primitivos do TypeScript. O script tenta usar integer como tipo, mas o TypeScript (a partir da versão 3 e nas versões 4 ou mais recentes) possui apenas os tipos number, string, boolean, null, undefined, any, void, etc. Não existe o tipo integer. Diferentemente de outras linguagens como Java ou C#, que distinguem int e integer, o TypeScript padroniza tudo como number.

Alternativa A — ❌ Incorreta

Afirma que o erro é por indefinição de string. string é um tipo primitivo válido no TypeScript, portanto não gera erro.

Alternativa B — ✅ Correta ⟵ GABARITO

integer não é um tipo reconhecido. O TypeScript espera usar number para valores numéricos. A declaração id: integer; causa o erro "Cannot find name 'integer'".

Alternativa C — ❌ Incorreta

interface é uma palavra-chave da linguagem, usada para definir contratos de objetos. Perfeitamente válida.

Alternativa D — ❌ Incorreta

O uso de ponto e vírgula após a declaração da interface é opcional (por causa do ASI) mas perfeitamente aceito. Não causa erro.

Alternativa E — ❌ Incorreta

A ordem das propriedades na atribuição do objeto tjms não tem relevância; o TypeScript aceita qualquer ordem, desde que os nomes e tipos correspondam.

Gabarito: letra B.

Link permanente: /questoes/fg098589