Questão nº 33

Questão de Engenharia de Software, DevOps e Ciência de Dados · FCC MPEPE 2018 (nº 33)

FCC2018Analista Ministerial - Área InformáticaEngenharia de Software, DevOps e Ciência de Dados
Gabarito: Bver comentário ↓

Considere o fragmento de código TypeScript abaixo.

```
interface CriaArrayString {
[indice: number]: string;
}
var nomes: CriaArrayString;
nomes = ["Ana", "Pedro", "Mariana"];
document.body.innerHTML = nomes[1];
```

Ao executar esse código

Resposta comentada

Gabarito Alternativa B

Uma interface com assinatura de índice em TypeScript define um tipo para objetos que podem ser acessados como arrays (usando números como índices) ou como dicionários (usando strings como chaves), garantindo que os valores correspondam a um tipo específico.

A) Incorreta: A sintaxe `[indice: number]: string;` é uma forma válida de definir uma assinatura de índice em uma interface TypeScript, indicando que qualquer propriedade acessada por um número (`indice: number`) deve ter um valor do tipo `string`.
(B) Correta: O código declara `nomes` como um tipo que aceita índices numéricos retornando strings. A atribuição `nomes = ["Ana", "Pedro", "Mariana"];` é válida, pois um array de strings se encaixa perfeitamente nessa descrição. Em arrays, o índice `1` corresponde ao segundo elemento, que é "Pedro". O comando `document.body.innerHTML = nomes[1];` irá, portanto, exibir "Pedro" na tela.
C) Incorreta: A declaração `var nomes: CriaArrayString;` é uma declaração de variável TypeScript padrão, associando a variável `nomes` ao tipo definido pela interface `CriaArrayString`. Não há erro de sintaxe ou tipo aqui.
D) Incorreta: "Ana" está na posição de índice `0` do array, não na posição `1`.
E) Incorreta: Acessar `nomes[1]` é uma operação válida para um array (ou tipo array-like) e o resultado (uma string) pode ser atribuído ao `document.body.innerHTML` sem causar um erro de execução no contexto de um navegador. Armadilha: A complexidade da interface `CriaArrayString` pode levar o aluno a pensar que o acesso `nomes[1]` ou a atribuição `nomes = [...]` não seria compatível, mas na verdade a interface descreve exatamente como um array de strings funciona.

Fonte: FCC MPEPE 2018 Analista Ministerial - Área Informática (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho