Questão FC373471
Considere o fragmento de código TypeScript abaixo. interface CriaArrayString { [indice: number]: string; } var nomes: CriaArrayString; nomes = ["Ana", "Pedro", "Mariana"]; document
Desenvolvimento Web
FCC · 2018
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
- ocorrerá um erro na linha que contém o comando [indice: number]: string;
- será exibido na tela o nome Pedro.
- ocorrerá um erro na linha que contém o comando var nomes: CriaArrayString;
- será exibido na tela o nome Ana.
- ocorrerá um erro na linha que contém o comando document.body.innerHTML = nomes[1];
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
A interface CriaArrayString declara uma assinatura de índice com [indice: number]: string, ou seja, mapeia índices numéricos para valores do tipo string.
Quando fazemos nomes = ["Ana", "Pedro", "Mariana"], atribuimos um array de strings. Em TypeScript um array de strings é compatível com a assinatura de índice definida, portanto a atribuição é válida em tempo de compilação.
Em tempo de execução o array funciona como em JavaScript: os elementos são acessados por índices começando em zero. Assim, nomes[1] retorna o segundo elemento do array.
A instrução document.body.innerHTML recebe esse valor e substitui o conteúdo do <body>, exibindo na página o nome Pedro.
Conteúdo do catálogo FC Concursos · Atualizado em