【发布时间】:2020-02-03 18:07:19
【问题描述】:
我为 Ramda (@types/ramda) 安装了类型定义文件,当我编写以下代码时,没有任何抱怨:
const gt5 = (x: number): boolean => x > 5
const inc = (x: number): number => x + 1
const f = pipe(map(inc), filter(gt5))
console.log(f([1,6,8]))
但是如果我改变过滤器和映射的顺序:
const gt5 = (x: number): boolean => x > 5
const inc = (x: number): number => x + 1
const f = pipe(filter(gt5), map(inc))
console.log(f([1,6,8]))
我收到以下错误:
(alias) filter(fn: (value: number) => boolean): R.FilterOnceApplied (+4 重载) 导入过滤器 没有重载匹配此调用。 最后一个重载给出了以下错误。 “FilterOnceApplied”类型的参数不可分配给“(x0:未知,x1:未知,x2:未知)=>只读数字[]”类型的参数。 参数“source”和“x0”的类型不兼容。 类型 'unknown' 不可分配给类型 'number[] |字典'。 类型“未知”不可分配给类型“字典”.ts(2769) index.d.ts(2172, 9):最后一个重载在这里声明。
因为代码仍然可以正常运行。
如何解决这个错误?
我正在使用 VSCode。
【问题讨论】:
-
我建议在论坛中询问维护您的打字文件的任何团队。许多 Ramda 专家对打字稿知之甚少。
标签: typescript ramda.js