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».

Вывод

Здесь появится то, что напечатает программа.