【发布时间】:2019-11-04 02:14:03
【问题描述】:
我一直在关注一篇关于 Lodash 的文章,Why using _.chain is a mistake,它强调您可以使用 Flow 消除对链的需求。
给出的例子如下使用链
import _ from "lodash";
_.chain([1, 2, 3])
.map(x => [x, x*2])
.flatten()
.sort()
.value();
可以使用flow转换为以下
import map from "lodash/fp/map";
import flatten from "lodash/fp/flatten";
import sortBy from "lodash/fp/sortBy";
import flow from "lodash/fp/flow";
flow(
map(x => [x, x*2]),
flatten,
sortBy(x => x)
)([1,2,3]);
但是,当我使用 TypeScript 实现它时,我收到以下错误
对象的类型为“未知”.ts(2571)
有没有办法解决这个问题,以便 TypeScript 知道它正在处理哪些类型?
【问题讨论】:
-
由于答案中已经列出的原因,ts 编译器因长函数组合而受到打击和错过。如果你喜欢 _.chain 的类型安全和流畅的风格,你可能会在 monetjs 中实现 List 数据类型。 github.com/monet/monet.js/blob/master/docs/LIST.md
标签: javascript typescript functional-programming lodash