【问题标题】:Make passing an async function to filter a compile-time error传递一个异步函数来过滤编译时错误
【发布时间】:2018-06-26 12:53:43
【问题描述】:

我知道 files.filter(async file => await isDirectory(file)) 根本不过滤数组,因为异步函数返回一个 Promise,它的值是布尔值。

但我使用 TypeScript 的目的是在编译时捕获此类类型错误。我很惊讶编译器允许这段代码通过。

是否有 TypeScript 编译器设置或 linter 可以在编译时捕获它?我尝试了默认的tslint 配置,但没有捕获到这个。

【问题讨论】:

  • 嗯,它本身并不是无效的,它只是不能很好地工作。除了自己创建具有这些限制的包装函数之外,我不确定是否有其他方法

标签: typescript promise


【解决方案1】:

对于filter(),有similar open issue。请注意,过滤器回调需要返回booleanbut it was removed

对于map(),传递一个返回承诺的回调是完全有效的用例。

【讨论】:

    猜你喜欢
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 2021-06-27
    相关资源
    最近更新 更多