问题标签 [fp-ts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
typescript - 如何转换> 进入TaskEither在 fp-ts
我有一个返回的管道,Either<Error, Task<any>>
但我需要的是TaskEither<Error, any>
.
我怎样才能转换Either<Error, Task<any>>
为TaskEither<Error, any>
?
是否有任何帮助工具功能可以做到这一点?
typescript - fp-ts 和 jest:Option 和 Either 的人体工程学测试?
我正在使用fp-ts
,我用 Jest 编写单元测试。在许多情况下,我正在测试可以为空的结果,通常用Option
or表示Either
(通常是 array find
s)。如果结果为无(以Option
示例为例),那么使测试失败的最符合人体工程学的方法是什么,并继续知道这个结果是一些?
这是我目前如何解决问题的示例:
但是必须写一个 if 并提前返回不是很符合人体工程学。
我也可以写一个as
断言:
但缺点是我必须重写some
's 类型。在许多情况下,必须编写它很繁重,需要编写和导出接口仅用于测试目的(这也不符合人体工程学)。
有没有办法简化这种测试?
编辑:这是一个更接近真实条件的测试用例:
typescript - 为什么要进行类型检查?
这对我没有意义:
Left
is和String
/或Error
which 显然不相等。这种类型怎么检查???
typescript - 并行运行一组 TaskEithers,但如果 1 个或多个任务失败则继续
我必须并行进行一系列 IO 调用,如果成功则合并调用的内容。如果一个失败,其他人将按正常方式处理,但会出现错误消息。
我对如何实现这一点的思考过程:
Array<TE<E, A>> -> TE<E, Array<A>> -> TE<E, MergedA> -> [E, A]
我目前在做什么:
我目前正在对一组 TE 进行排序,但链中的任何故障都会产生左侧。
如何停止短路?
typescript - 将 IO 映射到 fp-ts 中的 Either 数组
谁能帮我弄清楚如何做到这一点fp-ts
?
我可以做到这一切,TaskEither
但我不知道如何将它与 混合IO
,或者我根本不应该使用IO
?
到目前为止,这是我想出的:
更新:
我必须提到并澄清对我来说最具挑战性的部分是如何将类型从IO
数组更改为Either
然后过滤或忽略left
s 并继续Task
orTaskEither
打字稿错误是Type 'Either<Error, string[]>' is not assignable to type 'IO<unknown>'
typescript - 如何在 FP 尤其是 fp-ts 中管理 monad
我对函数式编程和特别是fp-ts
库非常陌生。
我的问题包括两个部分:
- 我看到了一种将 Monads 从一种类型转换为另一种类型的模式,例如从
Task
toIO
或反之亦然,我们如何管理这一点,我们应该始终保持在一个类型上还是应该随着链条的继续而改变? - 如何简单地使打字稿跟随这些从一个到另一个的类型更改?
例如,假设我们有几个函数,我们想将它们组合在一起,如下所示,我知道这个例子可能不是很实用,但它可以达到目的。
typescript - 转换TaskEither[] 到 TaskEither
我仍在学习和玩耍,fp-ts
无法弄清楚这一点。我有一些 API 调用,我想将所有成功的响应和所有错误收集到数组中。
所以,我尝试使用array.sequence
:
这对响应很好,但我只收到来自 API 调用的最后一个错误。有没有办法将所有错误收集到一个数组中?
下面我编写了进行 API 调用的函数,以防万一我在那里遇到问题。
fp-ts - 在 fp-ts 中使用 Option 而不是 typescript 的 optional 有什么好处(问号)
我开始使用 fp-ts 并且想知道使用 Option 类型而不是 typescript 由问号表示的可选值的默认概念有什么优势?
typescript - 转换任务> 到 ReaderTask带 FP-TS
我正在寻找一种将 a 转换Task<Reader<A, B>>
为ReaderTask<A, B>
使用 TypeScript 的简洁方法。以下似乎可行,但我想知道该功能是否已在 FP-TS 中可用。
typescript - 管理函数式编程和 fp-ts 中的错误
我对函数式编程非常陌生,特别是fp-ts
.
我最近苦苦挣扎的是使用数组并将它们链接到不同的 Monad 中,同时保留与每个步骤相关的一些细节。
假设我们有一个程序
- 获取一些数据作为字符串
ITitle
如果可能,将字符串解析为数组;类型可以是Option<ITitle[]>
ITitle
将它们映射到可能执行一些异步更新的数组中;类型可以是TaskEither<IError, ITitle>
- 打印结果(如果可用),包括失败及其特定错误
更新:
我正在用更具体的问题更新问题: