Изучение методов получения и установки в TypeScript: подробное руководство

В TypeScript методы получения и установки позволяют инкапсулировать доступ и изменение свойств класса. Они позволяют вам определять собственное поведение при чтении или записи значений, обеспечивая дополнительный контроль и гибкость. В этой статье мы рассмотрим концепцию методов получения и установки в TypeScript и продемонстрируем их использование на примерах кода.

  1. Базовый метод получения и установки.
    Самая основная форма метода получения и установки определяется внутри класса. Давайте рассмотрим пример класса Personсо свойством name:
class Person {
  private _name: string;
  get name(): string {
    return this._name;
  }
  set name(value: string) {
    this._name = value;
  }
}
const person = new Person();
person.name = "John";
console.log(person.name); // Output: John

В приведенном выше коде мы определяем частное свойство _nameи предоставляем методы получения и установки для свойства name. Геттер возвращает значение _name, а сеттер позволяет нам присвоить новое значение _name.

  1. Вычисляемые свойства.
    Методы получения можно использовать для динамического вычисления и возврата значений на основе других свойств. Давайте расширим наш класс Person, включив в него свойство fullName:
class Person {
  private _firstName: string;
  private _lastName: string;
  get fullName(): string {
    return `${this._firstName} ${this._lastName}`;
  }
  set fullName(value: string) {
    const [firstName, lastName] = value.split(" ");
    this._firstName = firstName;
    this._lastName = lastName;
  }
}
const person = new Person();
person.fullName = "John Doe";
console.log(person.fullName); // Output: John Doe

В этом примере метод получения fullNameобъединяет свойства _firstNameи _lastName, чтобы вернуть полное имя человека. Установщик разделяет предоставленное значение на имя и фамилию и присваивает их соответствующим свойствам.

  1. Проверка и обработка ошибок.
    Методы получения и установки можно использовать для обеспечения соблюдения правил проверки и выполнения обработки ошибок. Рассмотрим класс Temperature, который представляет температуру в градусах Цельсия:
class Temperature {
  private _celsius: number;
  get celsius(): number {
    return this._celsius;
  }
  set celsius(value: number) {
    if (value < -273.15) {
      throw new Error("Invalid temperature. Cannot be below absolute zero.");
    }
    this._celsius = value;
  }
}
const temperature = new Temperature();
temperature.celsius = 25;
console.log(temperature.celsius); // Output: 25
temperature.celsius = -300; // Throws an Error

В этом примере метод установки свойства celsiusпроверяет, находится ли предоставленное значение ниже абсолютного нуля (-273,15°C), и выдает ошибку, если это так. Это гарантирует, что будут установлены только действительные значения температуры.

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

Не забывайте использовать эти методы разумно, поскольку чрезмерное использование геттеров и сеттеров может привести к снижению производительности.