Typescript 如何转换其中一个<;错误,任务<;任何>&燃气轮机;或者<;错误,任何>;在fp ts中
我有一个返回Typescript 如何转换其中一个<;错误,任务<;任何>&燃气轮机;或者<;错误,任何>;在fp ts中,typescript,functional-programming,fp-ts,Typescript,Functional Programming,Fp Ts,我有一个返回或的管道,但我需要的是任务或 如何将或转换为任务或 是否有任何实用程序函数用于执行此操作?您可以创建以下转换: import { Either } from "fp-ts/lib/Either"; import { Task } from "fp-ts/lib/Task"; import { fromEither, rightTask, chain } from "fp-ts/lib/TaskEither"; import { pipe } from "fp-ts/lib/pipea
或的管道,但我需要的是任务或
如何将或
转换为任务或
是否有任何实用程序函数用于执行此操作?您可以创建以下转换:
import { Either } from "fp-ts/lib/Either";
import { Task } from "fp-ts/lib/Task";
import { fromEither, rightTask, chain } from "fp-ts/lib/TaskEither";
import { pipe } from "fp-ts/lib/pipeable";
type MyType = { a: string }; // concrete type instead of any for illustration here
declare const t: Either<Error, Task<MyType>>; // your Either flying around somewhere
const result = pipe(
fromEither(t), // returns TaskEither<Error, Task<MyType>>
chain(a => rightTask(a)) // rightTask returns TaskEither<Error, MyType>, chain flattens
);
// result: TaskEither<Error, MyType>
从“fp ts/lib/earth”导入{earth};
从“fp ts/lib/Task”导入{Task};
从“fp-ts/lib/taskorth”导入{fromther,rightTask,chain};
从“fp ts/lib/pipeable”导入{pipe};
类型MyType={a:string};//具体类型,而不是此处的任何示例
声明常量t:other;//你要么在某处飞来飞去
常数结果=管道(
fromOrit(t),//返回taskOrit
链(a=>rightTask(a))//rightTask返回Task或者,链变平
);
//结果:两者都是
PS:我本想只写chain(rightstask)
,但是错误
类型不能用这种速记法正确推断(请注意目前完全确定的原因)
尽管如此,这是一个廉价的价格为这些强大的类型,并提供您想要的结果 解决方案如下:
声明常量a:E.其中之一;
常数b:TE.taskorn=E.任择序列(T.task)(a);
declare const a: E.Either<Error, T.Task<unknown>>;
const b: TE.TaskEither<Error, unknown> = E.either.sequence(T.task)(a);