Що робить модифікатор доступу public?
Модифікатор public у TypeScript - це найвідкритіший рівень доступу.
Він робить властивість або метод доступними звідусіль:
- зсередини класу,
- з його нащадків,
- і ззовні, через екземпляр класу.
1. Синтаксис
javascript
class User {
public name: string;
public constructor(name: string) {
this.name = name;
}
public greet(): void {
console.log(`Hello, ${this.name}!`);
}
}Модифікатор
publicможна не писати, він використовується за замовчуванням.
2. Приклад використання
javascript
class User {
public name: string;
public age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
public greet() {
console.log(`Hi, I'm ${this.name}, ${this.age} years old.`);
}
}
const user = new User("Tim", 25);
user.name = "Alex"; // доступний
user.greet(); // доступнийВластивості й методи public можна вільно читати, змінювати і викликати ззовні класу.
3. Доступ усередині та поза класом
| Звідки звертаємося | Доступ до public |
|---|---|
| Усередині класу | Так |
| У нащадку | Так |
| Ззовні (через екземпляр) | Так |
4. Модифікатор public у параметрах конструктора
Скорочена форма оголошення:
javascript
class User {
constructor(public name: string, public age: number) {}
}
const u = new User("Tim", 30);
console.log(u.name); // TimTypeScript автоматично створює поля
nameіageта присвоює їм передані значення.
5. За замовчуванням усе public
Якщо не вказати модифікатор, поведінка буде такою самою:
javascript
class User {
name: string; // це public за замовчуванням
greet() {}
}6. Порівняння з іншими модифікаторами
| Модифікатор | Видимість | Чи можна використовувати поза класом? |
|---|---|---|
| public | Скрізь | Так |
| private | Тільки всередині класу | Ні |
| protected | У класі та нащадках | Ні |
Підсумок
public:
- Доступний скрізь (усередині, ззовні, у нащадках);
- Використовується за замовчуванням;
- Можна ставити перед властивостями, методами і параметрами конструктора;
- Дозволяє явно вказати, що член класу є частиною відкритого інтерфейсу класу.
Просто запам'ятай:
public= "доступно всім".
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.