我正在写一个节点。具有流类型的js模块,如下所示。
hole(obj)
.pipe(fn1)
.pipe(fn2)
.pipe(fn3);
预期的类型定义为
类似于
这
/* Not working */
hole(T)
.pipe((T) => U)
.pipe((U) => V)
.pipe((V) => W)
但我真的不确定打字是否可行。
目前,该函数定义为
pipe(fn: (any => any)): Hole
. 我想我需要缩小
any
键入函数实际返回的更具体的值。下面是我试图加强实例方法的类型定义的内容,但失败了。
/* Not working */
class Hole {
pipe(fn: (T => U)): (Hole & {pipe: (U => V)}))
}
在JavaScript类型工具中是否可能?如果类型脚本可以代替Flow,我将成为一个类型脚本er。我还对Java的流如何解决这个问题感兴趣。