所需的最终打字稿代码是:
transform(input)(transformation1)(transformation2)(...
// input is any data, e.g. string or object
// transformationX should be a transforming function
到目前为止我已经写了下面的代码,我感觉我在发明轮子,即这样的东西必须已经在FP中实现了,但我不知道它是如何调用的。谁能告诉可以使用https://gcanti.github.io/fp-ts/中的哪个工具?
type Transformer = (transformation: Transformation) => Transformer
type Transformation = (input: object) => Transformer
const TranformerCreator = (input: object): Transformer
=> (transformation: Transformation): Transformer
=> transformation(input)
const transform: Transformation = (input: object) => {
return TranformerCreator(input)
}
const transformation1: Transformation = (input: object) => {
// do sometging with input
return TranformerCreator(input)
}