Статические методы и свойства в TypeScript

В этом руководстве вы узнаете о статических свойствах и методах TypeScript.

Статические свойства

В отличие от свойства экземпляра, статическое свойство является общим для всех экземпляров класса.

Чтобы объявить статическое свойство, вы используете ключевое слово static. Для доступа к статическому свойству используется синтаксис className.propertyName. Например:

class Employee {
    static headcount: number = 0;

    constructor(
        private firstName: string,
        private lastName: string,
        private jobTitle: string) {

        Employee.headcount++;
    }
}

В этом примере headcount — это статическое свойство, инициализированное нулем. Его значение увеличивается на 1 всякий раз, когда создается новый объект.

Следующее создает два Employee и показывает значение свойства headcount. Он возвращает 2, как и ожидалось.

let john = new Employee('John', 'Doe', 'Front-end Developer');
let jane = new Employee('Jane', 'Doe', 'Back-end Developer');

console.log(Employee.headcount); // 2

Статические методы

Подобно статическому свойству, статический метод также является общим для экземпляров класса. Чтобы объявить статический метод, вы используете ключевое слово static перед именем метода. Например:

class Employee {
    private static headcount: number = 0;

    constructor(
        private firstName: string,
        private lastName: string,
        private jobTitle: string) {

        Employee.headcount++;
    }

    public static getHeadcount() {
        return Employee.headcount;
    }
}

В этом примере:

  • Во-первых, измените модификатор доступа статического свойства headcount с public на private, чтобы его значение нельзя было изменить вне класса без создания нового объекта Employee.
  • Во-вторых, добавьте статический метод getHeadcount(), который возвращает значение статического свойства headcount.

Для вызова статического метода используется синтаксис className.staticMethod(). Например:

let john = new Employee('John', 'Doe', 'Front-end Developer');
let jane = new Employee('Jane', 'Doe', 'Back-end Developer');

console.log(Employee.getHeadcount); // 2

На практике вы найдете библиотеку, содержащую множество статических свойств и методов, таких как объект Math. Он имеет PI, E, … статические свойства и abs(), round() и т.д., статические методы.

  • Статические свойства и методы TypeScript являются общими для всех экземпляров класса.
  • Используйте ключевое слово static перед свойством или методом, чтобы сделать его статическим.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript