⊗tsSpOpAMPrt 11 of 37 menu

Modificador protected em TypeScript

Propriedades e métodos privados não são herdados por classes filhas. No entanto, às vezes precisamos que uma propriedade ou método não esteja acessível externamente, mas seja herdado pelas classes filhas. Nesse caso, devemos usar o modificador protected.

Vamos experimentar na prática. Vamos declarar no nosso classe User o método cape como protegido usando o modificador protected:

class User { protected cape(str: string) { return str[0].toUpperCase() + str.slice(1); } }

Vamos fazer a classe Student, que herda da classe User:

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } }

Vamos adicionar um método que exibe o nome:

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } public showName(): string { return this.name; } }

E agora vamos usar o método protegido da classe pai dentro de um método da classe filha:

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } public showName(): string { return this.cape(this.name); // usando o método da classe pai } }

Vamos criar um objeto da nossa classe:

let student: Student = new Student('john');

Vamos usar o método para exibir o nome do estudante:

console.log(student.showName());

Mas uma tentativa de chamar o método cape de fora da classe resultará em um erro:

console.log(student.cape('test')); // erro

Dada a seguinte classe:

class User { protected name: string; protected surn: string; constructor(name: string, surn: string) { this.name = name; this.surn = surn; } }

Herde desta classe a classe Employee, que adicionará uma propriedade protegida salary, assim como getters para todas as propriedades, tanto suas quanto as herdadas.

bydeenesfrptru