1
resposta

Dúvida no exercícioTypescript e classes

O enunciado do exercício 10 da Aula 01, "Typescript e classes", solicita que se "Marque a opção na qual há um erro de compilação do TypeScript de acesso indevido a uma propriedade privada".

O código constante na opção "b", apresentada como correta, declara a propriedade nome com o modificador private, porém no construtor da classe, referencia outro atributo, o this._nome, que não foi declarado no corpo da classe. Nesse caso, não daria outro erro de compilação, se considerarmos a explicação abaixo, extraída da transcrição da vídeo aula 09, "Modelando com TypeScript", que afirma que "apesar do TS ser um superset do ES2015, ele necessita uma declaração especial para propriedade de classes. Essas são declaradas no corpo da classe"?

class Pessoa {

    private nome;
    _idade;

    constructor(nome, idade) {

        this._nome = nome;    // this._nome é um atributo da classe que não foi declarado no corpo
        this._idade;
    }
}

let pessoa = new Pessoa('Barney', 18);
pessoa.nome = 'Martin'.
1 resposta

Olá André, tudo bem contigo?

Relendo aqui o exercicio, concordo contigo. Mas o caso me parece apenas uma erro de tipografia.

De fato a variável "_idade" esta correta. Mas erraram a tipografia de "nome".

Na declaração esta como "nome" e no constructor esta como "_nome".

Nestes casos vide que no topo da janela do exercicio existe um botão (3 pontos) onde pode sugerir uma alteração.

Neste caso a questão é avaliada e se for o caso corrigida por um moderador na Alura. Inclusive você é pontuado por estas correções dentro da comunidade!