【发布时间】:2019-12-29 16:15:52
【问题描述】:
我有这个示例代码:
import {none, some, chain} from 'fp-ts/lib/Option';
import {pipe} from 'fp-ts/lib/pipeable';
const f1 = (input: string) => {
return some(input + " f1")
};
const f2 = (input: string) => {
return some(input + "f2")
};
const f3 = (input: string) => {
return none;
};
const f4 = (input: string) => {
return some(input + "f4");
};
const result = pipe(
f1,
chain(f2),
chain(f3),
chain(f4),
)("X");
console.log("result", result);
我得到这个编译时错误
Argument of type '(input: string) => Option<string>' is not assignable to parameter of type 'Option<string>'.
Type '(input: string) => Option<string>' is missing the following properties from type 'Some<string>': _tag, value
18 f1,
~~
src/index.ts:18:5
18 f1,
~~
Did you mean to call this expression?
我的代码有什么问题?
我希望 f1 和 f2 运行和其他功能不是因为 none 返回 f3 并且最后输出为 Some "X f1 f2"
【问题讨论】:
标签: typescript functional-programming fp-ts