Questão de TI - Desenvolvimento de Sistemas — Geral — VUNESP 2026
TI - Desenvolvimento de Sistemas›Geral
Código
vu169381
Banca
VUNESP
Órgão
FAPESP
Ano
2026
Cargo
Ana Sist ( )
enum collors {
Red,
Green,
Blue
};
let collor = collors.Green;
console.log(collor);
A seguir é apresentado um trecho de código escrito em TypeScript: É correto afirmar que o valor impresso no console por esse trecho de código é:
Acollors.Green
Bcollors
CGreen
D3
E1
Revelar gabarito e comentário▾
GabaritoE — 1
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”.
Enums em TypeScript: valores numéricos automáticos
Gabarito: letra E. Em TypeScript, um enum numérico atribui automaticamente valores inteiros sequenciais a partir de 0 para cada membro, salvo se um valor explícito for fornecido. Como Red é o primeiro membro, recebe 0; Green recebe 1; Blue recebe 2. Ao imprimir collors.Green, o console exibe o número 1. A pegadinha está em confundir o nome do membro com seu valor subjacente.
O enum é um recurso do TypeScript que permite definir um conjunto de constantes nomeadas. Quando você declara um enum numérico sem atribuir valores, o compilador atribui automaticamente números inteiros começando em 0, incrementando de 1 em 1 para cada membro subsequente. Isso é uma característica fundamental dos enums numéricos, herdada de linguagens como C# e Java.
No trecho apresentado, temos:
enum collors {
Red,
Green,
Blue
}
let collor = collors.Green;
console.log(collor);
Aqui, Red recebe 0, Green recebe 1 e Blue recebe 2. A variável collor recebe o membro Green, que equivale ao valor numérico 1. O console.log imprime exatamente esse valor: 1.
É importante distinguir entre o nome do membro (Green) e o valor associado (1). Quando você usa collors.Green em uma expressão, o TypeScript substitui pelo valor numérico correspondente. Por isso, o console exibe 1, não a string "Green".
A banca explora justamente essa confusão: o candidato pode achar que o console imprime o nome do membro ou o nome do enum, mas na verdade imprime o valor numérico. Essa é uma pegadinha clássica em questões de TypeScript/JavaScript.
Guarde a regra: em enums numéricos sem inicialização explícita, o primeiro membro vale 0, o segundo vale 1, e assim por diante. É exatamente esse critério que separa as alternativas corretas das incorretas.
1Red = 0
2Green = 1
3Blue = 2
4collors.Green → 1
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Imprimiria collors.Green se o console.log recebesse uma string literal, mas aqui recebe a expressão collors.Green, que é avaliada para o valor numérico 1. A alternativa confunde a referência ao membro com o valor impresso.
Alternativa B — ❌ Incorreta
Imprimiria collors se fosse passado o nome do enum como string, mas collors.Green é uma expressão que resolve para o valor do membro, não para o nome do enum.
Alternativa C — ❌ Incorreta
Imprimiria Green se o enum fosse de strings (ex.: enum collors { Green = "Green" }), mas aqui é um enum numérico, então o valor é 1, não o nome.
Alternativa D — ❌ Incorreta
O valor 3 seria impresso se houvesse um quarto membro (índice 3) ou se Green fosse o terceiro membro com valor 2. Como Green é o segundo membro, seu valor é 1.
Alternativa E — ✅ Correta ⟵ GABARITO
Green é o segundo membro do enum, portanto recebe o valor automático 1. O console.log(collors.Green) imprime 1. A alternativa está correta.