我对如何为此类功能编写流类型注释感兴趣:
const Box = x => ({
map: f => Box(f(x)),
fold: f => f(x),
});
Run Code Online (Sandbox Code Playgroud)
我猜类型注释应该使用泛型。
函数用法示例:
const getRandomColor = (): string =>
Box(Math.random())
.map(x => x * 0xFFFFFF)
.map(Math.floor)
.map(x => x.toString(16))
.fold(x => `#${x.padStart(0, 6)}`);
Run Code Online (Sandbox Code Playgroud)
PS:如果不可能,请写一个解释为什么不可能。
不幸的是,@ Isitea的答案不合适,因为他更改了源代码,这不是重点。