Модификатор доступа private в TypeScript используется для ограничения видимости члена класса. Этот модификатор обеспечивает то, что член класса может быть доступен только изнутри того класса, в котором он объявлен.
Возьмем для примера простой класс Car, который имеет два свойства: private speed и public maker.
class Car {
private speed: number;
public maker: string;
constructor(speed: number, maker: string) {
this.speed = speed;
this.maker = maker;
}
getSpeed(): number {
return this.speed;
}
}
let carObj = new Car(120, 'Toyota');
console.log(carObj.getSpeed()); // выводит 120
console.log(carObj.maker); // выводит 'Toyota'
console.log(carObj.speed); // Ошибка: Свойство 'speed' является private и доступна только внутри класса 'Car'.
В приведенном выше примере свойство speed объявлено как private, поэтому когда мы пытаемся получить доступ к этому свойству извне класса, мы получаем ошибку. Однако при доступе к нему через публичный метод getSpeed внутри класса, ошибки не возникает.
В объектно-ориентированном программировании (ООП), модификатор доступа private играет важную роль в инкапсуляции, которая является одним из основных принципов ООП. Инкапсуляция позволяет скрывать внутренние детали реализации класса, показывая пользователям только то, что безопасно и необходимо.
В TypeScript, также доступны другие модификаторы доступа, такие как public (доступен везде) и protected (доступен в классе и его подклассах), но private обеспечивает наибольшую степень сокрытия и ограничения доступа.