Typescript数组函数遍历问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Typescript数组函数遍历问题相关的知识,希望对你有一定的参考价值。
我的程序有一个检查很多条件的地方。
与编写一个大的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;
我觉得有更多功能性的表达方式(从现在开始,在我看来,这看起来太必要了),但我不确定它的外观。谢谢!
答案
也许与find
:
function makeErrorFilter(filters: Array<(err: MyError) => boolean>) {
return (err: MyError) => !!filters.find(filter => filter(err));
}
const errorFilter = makeErrorFilter([
(e: MyError) => e.checkSomething(),
(e: MyError) => e.checkSomethingElse,
(e: MyError) => e.checkSomethingYetAgain()
]);
以上是关于Typescript数组函数遍历问题的主要内容,如果未能解决你的问题,请参考以下文章