Освоение модификаторов доступа в TypeScript: демистификация ключевых слов «публичный», «только для чтения» и «частный»

Модификаторы доступа — важный аспект объектно-ориентированного программирования, позволяющий разработчикам контролировать видимость и доступность членов класса в TypeScript. В этой статье блога мы погрузимся в мир модификаторов доступа, уделив особое внимание ключевым словам «public», «только для чтения» и «частный». Мы рассмотрим, что они означают, как они работают, и предоставим примеры кода, которые помогут вам понять их использование. Итак, хватайте свой любимый напиток и начнем!

  1. Модификатор public:
    Ключевое слово public — это модификатор доступа по умолчанию в TypeScript. Это позволяет получать доступ к членам класса из любого места программы, в том числе за пределами класса. Вот пример:
class Car {
  public brand: string;
  public speed: number;
  constructor(brand: string, speed: number) {
    this.brand = brand;
    this.speed = speed;
  }
  public accelerate(): void {
    console.log(`The ${this.brand} is accelerating at ${this.speed} km/h.`);
  }
}
const myCar = new Car('Tesla', 100);
console.log(myCar.brand); // Output: Tesla
myCar.accelerate(); // Output: The Tesla is accelerating at 100 km/h.
  1. Модификатор readonly:
    Ключевое слово readonly гарантирует, что значение свойства класса не может быть изменено после его присвоения. Это особенно полезно, если вы хотите создать свойства, доступные только для чтения. Давайте посмотрим на это в действии:
class Circle {
  public readonly radius: number;
  constructor(radius: number) {
    this.radius = radius;
  }
  public calculateArea(): number {
    return Math.PI * this.radius * this.radius;
  }
}
const myCircle = new Circle(5);
console.log(myCircle.radius); // Output: 5
console.log(myCircle.calculateArea()); // Output: 78.53981633974483
myCircle.radius = 10; // Error: Cannot assign to 'radius' because it is a read-only property.
  1. Модификатор «private»:
    Ключевое слово «private» ограничивает доступ к членам класса только внутри самого класса. К ним нельзя получить доступ извне класса или его подклассов. Давайте посмотрим:
class BankAccount {
  private balance: number;
  constructor(initialBalance: number) {
    this.balance = initialBalance;
  }
  private deduct(amount: number): void {
    this.balance -= amount;
  }
  public withdraw(amount: number): void {
    if (amount <= this.balance) {
      this.deduct(amount);
      console.log(`Successfully withdrew $${amount}`);
    } else {
      console.log('Insufficient funds');
    }
  }
}
const myAccount = new BankAccount(1000);
myAccount.withdraw(500); // Output: Successfully withdrew $500
console.log(myAccount.balance); // Error: Property 'balance' is private and only accessible within class 'BankAccount'
myAccount.deduct(100); // Error: Property 'deduct' is private and only accessible within class 'BankAccount'

В этой статье мы рассмотрели модификаторы доступа «публичный», «только для чтения» и «частный» в TypeScript. Мы узнали, что «public» является модификатором по умолчанию и разрешает неограниченный доступ, «только для чтения» обеспечивает свойства только для чтения, а «частный» ограничивает доступ к членам класса. Понимая и эффективно используя эти модификаторы, вы можете улучшить инкапсуляцию и структуру вашего кода TypeScript.

Помните, что освоение модификаторов доступа имеет решающее значение для написания удобных и безопасных приложений TypeScript. Так что приступайте к реализации этих модификаторов в своих проектах, чтобы поднять свои навыки программирования на новый уровень!