Классы

«Класс представляет шаблон для создания объектов и инкапсулирует функциональность.»

Базовый класс

class Greeter {
  greeting: string

  constructor(message: string) {
    this.greeting = message
  }

  greet() {
    return 'Привет, ' + this.greeting
  }
}

const greeter = new Greeter('Мир')
greeter.greet()  // 'Привет, Мир'

Модификаторы доступа

class BankAccount {
  public owner: string          // доступен везде
  private balance: number       // только внутри класса
  protected currency: string    // класс и подклассы
  readonly id: string           // нельзя изменить после init
}

Наследование

class Animal {
  name: string
  constructor(name: string) { this.name = name }
  move(distance: number) { console.log(this.name + ' прошёл ' + distance + 'м') }
}

class Snake extends Animal {
  constructor(name: string) { super(name) }
  move(distance = 5) { super.move(distance) }
}

class Horse extends Animal {
  constructor(name: string) { super(name) }
  move(distance = 45) { super.move(distance) }
}
ℹ️ Отказ от классов

Этот курс обучает разработке мобильных приложений на React, где React Hooks позволяют использовать состояние и другие возможности React без написания классов.