0Pricing
TypeScript Academy · Aula

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.

Recursos avançados de classes — ilustração 1

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.

Recursos avançados de classes — ilustração 2

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

Membros 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.5

Mé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); // Bob

Propriedades 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!

Recursos avançados de classes — ilustração 11

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

  1. Restrição avançada de tipos
  2. Recursos avançados de classes
  3. Tipos condicionais
← Voltar para TypeScript Academy