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'.