Recursos avançados de classes
Descubra recursos avançados de classes, como classes abstratas, modificadores de acesso e membros estáticos, para escrever código TypeScript limpo, modular e orientado a objetos.
Recursos avançados de classes é uma aula grátis de TypeScript Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de TypeScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de TypeScript Academy inclui 3 aulas no total.
Introdução aos recursos avançados de classes
Introdução aos recursos avançados de classes
O TypeScript oferece vários recursos avançados de classes que ajudam você a escrever código modular, escalável e de fácil manutenção, orientado a objetos.
Nesta lição, você aprenderá sobre modificadores de acesso, classes abstratas, membros estáticos e muito mais.

Visão geral dos recursos avançados de classes
Introdução aos recursos avançados de classes
O TypeScript oferece vários recursos avançados de classes que ajudam você a escrever código modular, escalável e de fácil manutenção, orientado a objetos.
Nesta lição, você aprenderá sobre modificadores de acesso, classes abstratas, membros estáticos e muito mais.

Modificadores de acesso
Modificadores de acesso
O TypeScript fornece três modificadores de acesso para controlar a visibilidade dos membros de uma classe:
public: acessível em qualquer lugar (padrão).private: acessível somente dentro da classe.protected: acessível dentro da classe e de suas subclasses.
class Person {
public name: string;
private age: number;
protected role: string;
constructor(name: string, age: number, role: string) {
this.name = name;
this.age = age;
this.role = role;
}
}
class Employee extends Person {
getRole(): string {
return this.role; // Accessible because it's protected
}
}Classes abstratas
Classes abstratas
As classes abstratas são usadas como modelos para outras classes. Elas não podem ser instanciadas diretamente e podem incluir métodos abstratos.
abstract class Shape {
abstract getArea(): number;
}
class Circle extends Shape {
constructor(public radius: number) {
super();
}
getArea(): number {
return Math.PI * this.radius ** 2;
}
}
const circle = new Circle(5);
console.log(circle.getArea()); // 78.54Membros estáticos
Membros estáticos
Os membros estáticos pertencem à própria classe, e não a uma instância da classe. Eles são acessados usando o nome da classe.
class MathUtils {
static PI = 3.14;
static calculateCircleArea(radius: number): number {
return this.PI * radius ** 2;
}
}
console.log(MathUtils.PI); // 3.14
console.log(MathUtils.calculateCircleArea(5)); // 78.5Métodos de leitura e atribuição
Métodos de leitura e atribuição
Os métodos de leitura e atribuição permitem controlar como as propriedades são acessadas ou modificadas em uma classe.
class Person {
private _name: string;
constructor(name: string) {
this._name = name;
}
get name(): string {
return this._name;
}
set name(newName: string) {
this._name = newName;
}
}
const person = new Person('Alice');
console.log(person.name); // Alice
person.name = 'Bob';
console.log(person.name); // BobPropriedades somente leitura
Propriedades somente leitura
O modificador readonly garante que uma propriedade só possa ser definida durante a inicialização e não possa ser modificada posteriormente.
class Vehicle {
readonly make: string;
constructor(make: string) {
this.make = make;
}
}
const car = new Vehicle('Toyota');
console.log(car.make); // Toyota
// car.make = 'Honda'; // Error: Cannot assign to 'make' because it is a read-only property.Construtores privados e protegidos
Construtores privados e protegidos
As classes podem ter construtores privados ou protegidos para controlar como e onde são instanciadas.
class Singleton {
private static instance: Singleton;
private constructor() {}
static getInstance(): Singleton {
if (!this.instance) {
this.instance = new Singleton();
}
return this.instance;
}
}
const singleton = Singleton.getInstance();
console.log(singleton);Tarefa prática
Tarefa prática
Crie uma classe com um construtor protected e estenda-a em uma subclasse. Adicione métodos para acessar as propriedades protegidas na subclasse.
Parabéns!
Parabéns!
Você aprendeu recursos avançados de classes, como modificadores de acesso, classes abstratas, membros estáticos e muito mais. Pratique esses conceitos para escrever código TypeScript orientado a objetos limpo e eficiente!

Perguntas Frequentes
A aula “Recursos avançados de classes” é grátis?
Sim — o texto completo de “Recursos avançados de classes” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de TypeScript Academy, atualize para CoddyKit PRO. O curso de TypeScript Academy inclui 3 aulas no total.
O que vou aprender em “Recursos avançados de classes”?
Descubra recursos avançados de classes, como classes abstratas, modificadores de acesso e membros estáticos, para escrever código TypeScript limpo, modular e orientado a objetos. Você pratica TypeScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar TypeScript Academy?
Nenhuma experiência prévia é necessária. TypeScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.
Quanto tempo leva a aula “Recursos avançados de classes”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de TypeScript Academy?
Sim. Cada aula de TypeScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Restrição avançada de tipos
- Recursos avançados de classes
- Tipos condicionais