Як використовувати класи TypeScript із простими прикладами
TypeScript надає потужні функції JavaScript, у тому числі концепцію класів, що дозволяє об’єктно-орієнтоване програмування. Класи надають план для створення об’єктів, інкапсуляції даних і визначення поведінки. Цей посібник проведе вас через основи класів TypeScript на простих прикладах.
Що таке клас?
Клас — це план для створення об’єктів із заздалегідь визначеними властивостями та методами. Це допомагає впорядковувати код, сприяти багаторазовому використанню та створювати масштабовані програми. Класи в TypeScript працюють подібно до класів в інших об’єктно-орієнтованих мовах програмування.
Визначення базового класу
Щоб визначити клас у TypeScript, використовуйте ключове слово class
, за яким слідує назва класу та набір фігурних дужок, що містить властивості та методи.
Приклад базового класу
Нижче наведено приклад простого класу Person
із властивостями та методом:
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet(): void {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const person1 = new Person("Alice", 30);
person1.greet(); // Output: Hello, my name is Alice and I am 30 years old.
У цьому прикладі клас Person
має дві властивості: name
і age
. Метод конструктора ініціалізує ці властивості, а метод greet
виводить вітальне повідомлення.
Модифікатори доступу
TypeScript надає три модифікатори доступу для керування видимістю членів класу:
public
: учасники доступні з будь-якого місця (за замовчуванням).private
: учасники доступні лише в межах класу.protected
: члени доступні в межах класу та його підкласів.
Використання модифікаторів доступу
Ось як ви можете використовувати модифікатори доступу в класі TypeScript:
class Animal {
public name: string;
private age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
public getAge(): number {
return this.age;
}
}
const dog = new Animal("Buddy", 5);
console.log(dog.name); // Output: Buddy
console.log(dog.getAge()); // Output: 5
// console.log(dog.age); // Error: 'age' is private and only accessible within class 'Animal'.
У цьому прикладі name
є публічною властивістю, доступною поза класом, тоді як age
є приватною властивістю, доступною лише в межах класу.
Спадкування в TypeScript
TypeScript підтримує успадкування, що дозволяє класу успадковувати властивості та методи від іншого класу. Це допомагає повторно використовувати код і створювати ієрархію класів.
Приклад успадкування
Нижче наведено приклад класу Dog
, який успадковує базовий клас Animal
:
class Animal {
constructor(public name: string) {}
makeSound(): void {
console.log(`${this.name} makes a sound.`);
}
}
class Dog extends Animal {
constructor(name: string) {
super(name); // Call the constructor of the base class
}
makeSound(): void {
console.log(`${this.name} barks.`);
}
}
const dog = new Dog("Buddy");
dog.makeSound(); // Output: Buddy barks.
У цьому прикладі клас Dog
розширює клас Animal
і замінює метод makeSound
.
Гетери та сетери
TypeScript дозволяє визначати геттери та сетери для властивостей, забезпечуючи контрольований доступ до членів класу.
Приклад геттерів і сеттерів
class Person {
private _name: string;
constructor(name: string) {
this._name = name;
}
get name(): string {
return this._name;
}
set name(newName: string) {
if (newName) {
this._name = newName;
} else {
console.log("Name cannot be empty.");
}
}
}
const person = new Person("Alice");
console.log(person.name); // Output: Alice
person.name = "Bob";
console.log(person.name); // Output: Bob
У цьому прикладі доступ до властивості name
доступний і змінений за допомогою методів getter і setter.
Висновок
Класи TypeScript — це потужний спосіб писати об’єктно-орієнтований код чистим та ефективним способом. Вони забезпечують структурований спосіб визначення властивостей, методів, модифікаторів доступу, успадкування тощо. Розуміючи, як використовувати класи TypeScript, ви зможете писати надійніший і зручніший код для своїх програм.