TypeScriptУрок 10 из 16
Классы и модификаторы доступа
Класс в TypeScript — это класс JavaScript с типами и модификаторами доступа. Модификаторы решают, кто может читать и менять каждое поле.
Главное
- public стоит по умолчанию: поле доступно всем.
- private — только внутри класса, protected — ещё и в наследниках.
- readonly задаётся один раз, обычно в конструкторе.
- constructor(public readonly label: string) объявляет и заполняет поле одной строкой.
- private проверяет только компилятор; настоящая приватность в JavaScript — поля с #.
Пример
interface Resettable { reset(): void;} class Counter implements Resettable { private count = 0; // "public readonly label" declares and fills a property in one go constructor(public readonly label: string) {} increment(): void { this.count++; } reset(): void { this.count = 0; } get value(): number { return this.count; }} const clicks = new Counter("clicks");clicks.increment();clicks.increment();// clicks.count = 10; // error: 'count' is private// clicks.label = "taps"; // error: 'label' is read-only console.log(`${clicks.label}: ${clicks.value}`);clicks.reset();console.log(`after reset: ${clicks.value}`);Снаружи нельзя изменить ни count, ни label — обе строки с ошибками закомментированы. Значение читается через геттер value, а implements проверяет, что метод reset на месте.
Задание
Как пользоваться редактором⌘ Enter или Ctrl Enter — запустить код, ⇧ ⌘ Enter — проверить задание.Tab и Shift Tab сдвигают строку или выделение; Esc, затем Tab — выйти из редактора.Проверка сравнивает то, что напечатала программа, с заданием; пробелы в конце строк не важны.После двух неудачных проверок можно открыть решение. Ваш код сохраняется в этом браузере.Сделайте balance приватным, добавьте метод withdraw, который не уводит баланс в минус, и геттер total. Вывод: «Withdraw 20: true», «Withdraw 40: false», «Mia has 30».
Вывод
Здесь появится то, что напечатает программа.