В TypeScript методы получения и установки позволяют инкапсулировать доступ и изменение свойств класса. Они позволяют вам определять собственное поведение при чтении или записи значений, обеспечивая дополнительный контроль и гибкость. В этой статье мы рассмотрим концепцию методов получения и установки в TypeScript и продемонстрируем их использование на примерах кода.
- Базовый метод получения и установки.
Самая основная форма метода получения и установки определяется внутри класса. Давайте рассмотрим пример класса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
.
- Вычисляемые свойства.
Методы получения можно использовать для динамического вычисления и возврата значений на основе других свойств. Давайте расширим наш класс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
, чтобы вернуть полное имя человека. Установщик разделяет предоставленное значение на имя и фамилию и присваивает их соответствующим свойствам.
- Проверка и обработка ошибок.
Методы получения и установки можно использовать для обеспечения соблюдения правил проверки и выполнения обработки ошибок. Рассмотрим класс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.
Не забывайте использовать эти методы разумно, поскольку чрезмерное использование геттеров и сеттеров может привести к снижению производительности.