Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Alternativa incompleta está sendo considerada a correta.

Essa alternativa indicada como certa, me parece também estar errada, podem verificar?

as propriedades de pessoa deveriam ser declaradas com o "_".

deste modo:

class Pessoa {

    private _nome;
    _idade;

    constructor(nome, idade) {
        this._nome = nome;
        this._idade = idade;
    }
}

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

No exercício a opção correta está assim:

class Pessoa {

    private nome;
    idade;

    constructor(nome, idade) {
        this.nome = nome;
        this.idade = idade;
    }
}

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

Caso meu entendimento esteja incorreto, poderiam me explicar?

2 respostas
solução!

Oii, Diego! Tudo bem?

Bem pontuado, isso demonstra que você está atento aos estudos, Diego!

Mas nesse caso, o uso do underline _ não é necessário antes do nome das propriedades, o uso do modificador private já faz o papel de definir que a propriedade é privada. O underline _ pode indicar que a propriedade é privada, mas não é tão necessário quando se tem o modificador.

Então a alternativa B está correta e, uma vez que a pergunta do enunciado é escolher a opção que contém um erro de compilação, nela a proprieda nome é declarada como privada e apenas terão acesso a ela os métodos da própria classe.

Espero ter esclarecido sua dúvida com a explicação.

Bons estudos, Diego!

Esclareceu sim, muito obrigado Nathalia!