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