В моей программе есть место, где проверяются многие условия.
В отличие от написания выражений большого типа if(conditionOne || conditionTwo || ...)
, я решил определить массив фильтров следующим образом:
const filters: Array<(err: MyError) => boolean> = [
(e: MyError) => e.checkSomething(),
(e: MyError) => e.checkSomethingElse,
(e: MyError) => e.checkSomethingYetAgain()
];
Затем я обхожу его так:
for (const key in filters) {
if (filters[key](err)) {
return true;
}
}
return false;
Мне кажется, есть более функциональный способ выразить это (поскольку сейчас, на мой взгляд, это выглядит слишком императивно), но я не уверен, как это выглядит.
Спасибо!