Иногда нам требуется задать свойство или метод, который будет общим для всех экземпляров этого класса. Например, чтобы определить, является ли объект экземпляром класса. В таком случае при объявлении метода мы можем указать ключевое слово static
, и он станет доступен через имя класса:
class CustomFile {
private static readonly maxCustomFileSize = 1000;
static isCustomFile(file: CustomFile): boolean {
return file instanceof CustomFile;
}
protected static isCustomFileTooBig(size: number): boolean {
return size > CustomFile.maxCustomFileSize;
}
constructor(private name: string, private size: number) {
if (CustomFile.isCustomFileTooBig(size)) {
throw new Error('CustomFile is too big');
}
}
}
CustomFile.isCustomFile(new CustomFile('open-world.jpeg', 1000)); // true
Статическим методам и свойствам также можно назначить модификаторы доступа public
, protected
и private
и модификатор неизменяемости readonly
. Это позволяет ограничить использование свойств и методов только текущим классом или наследниками.
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.