Как лучше сделать цепочку вызовов if-elseif-else со скрытием elseif-else по умолчанию? Так вроде бы работает, только по умолчанию надо скрыть методы elseif, else. может как то лучше можно сделать ?class BaseLol { #isNextIf = false; public if(condition: boolean) { if (condition) { this.#isNextIf = false; } else { this.#isNextIf = true; } return this as Omit; } public elseif(condition: boolean) { if (this.#isNextIf && condition) { this.#isNextIf = false; } return this; } public else() { if (this.#isNextIf) { this.#isNextIf = false; } return this as Omit; } }

1 Мар 2022 в 19:54
141 +1
0
Ответы
1

Для скрытия методов elseif и else по умолчанию можно использовать интерфейс, который будет содержать только метод if. Вот пример, как это можно сделать:

type Chainable = {
if(condition: boolean): Omit<this, "if" | "elseif" | "else">;
}
class BaseLol implements Chainable {
#isNextIf = false;
public if(condition: boolean) {
if (condition) {
this.#isNextIf = false;
} else {
this.#isNextIf = true;
}
return this as Omit<this, "if" | "elseif" | "else">;
}
public elseif(condition: boolean) {
if (this.#isNextIf && condition) {
this.#isNextIf = false;
}
return this;
}
public else() {
if (this.#isNextIf) {
this.#isNextIf = false;
}
return this as Omit<this, "if" | "elseif" | "else">;
}
}

Теперь только метод if будет доступен по умолчанию, а методы elseif и else будут скрыты.

16 Апр в 19:14
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 246 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир