问题标签 [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.

0 投票
2 回答
1337 浏览

typescript - 如何转换> 进入TaskEither在 fp-ts

我有一个返回的管道,Either<Error, Task<any>>但我需要的是TaskEither<Error, any>.

我怎样才能转换Either<Error, Task<any>>TaskEither<Error, any>

是否有任何帮助工具功能可以做到这一点?

0 投票
3 回答
1286 浏览

typescript - fp-ts 和 jest:Option 和 Either 的人体工程学测试?

我正在使用fp-ts,我用 Jest 编写单元测试。在许多情况下,我正在测试可以为空的结果,通常用Optionor表示Either(通常是 array finds)。如果结果为无(以Option示例为例),那么使测试失败的最符合人体工程学的方法是什么,并继续知道这个结果是一些?

这是我目前如何解决问题的示例:

但是必须写一个 if 并提前返回不是很符合人体工程学。

我也可以写一个as断言:

但缺点是我必须重写some's 类型。在许多情况下,必须编写它很繁重,需要编写和导出接口仅用于测试目的(这也不符合人体工程学)。

有没有办法简化这种测试?

编辑:这是一个更接近真实条件的测试用例:

0 投票
1 回答
93 浏览

typescript - 为什么要进行类型检查?

这对我没有意义:

Leftis和String/或Errorwhich 显然不相等。这种类型怎么检查???

0 投票
1 回答
1460 浏览

typescript - 并行运行一组 TaskEithers,但如果 1 个或多个任务失败则继续

我必须并行进行一系列 IO 调用,如果成功则合并调用的内​​容。如果一个失败,其他人将按正常方式处理,但会出现错误消息。

我对如何实现这一点的思考过程:

Array<TE<E, A>> -> TE<E, Array<A>> -> TE<E, MergedA> -> [E, A]

我目前在做什么:

我目前正在对一组 TE 进行排序,但链中的任何故障都会产生左侧。

如何停止短路?

0 投票
1 回答
1949 浏览

typescript - 将 IO 映射到 fp-ts 中的 Either 数组

谁能帮我弄清楚如何做到这一点fp-ts

我可以做到这一切,TaskEither但我不知道如何将它与 混合IO,或者我根本不应该使用IO

到目前为止,这是我想出的:

更新:

我必须提到并澄清对我来说最具挑战性的部分是如何将类型从IO数组更改为Either然后过滤或忽略lefts 并继续TaskorTaskEither

打字稿错误是Type 'Either<Error, string[]>' is not assignable to type 'IO<unknown>'

0 投票
1 回答
827 浏览

typescript - 如何在 FP 尤其是 fp-ts 中管理 monad

我对函数式编程和特别是fp-ts库非常陌生。

我的问题包括两个部分:

  1. 我看到了一种将 Monads 从一种类型转换为另一种类型的模式,例如从TasktoIO或反之亦然,我们如何管理这一点,我们应该始终保持在一个类型上还是应该随着链条的继续而改变?
  2. 如何简单地使打字稿跟随这些从一个到另一个的类型更改?

例如,假设我们有几个函数,我们想将它们组合在一起,如下所示,我知道这个例子可能不是很实用,但它可以达到目的。

0 投票
2 回答
666 浏览

typescript - 转换TaskEither[] 到 TaskEither

我仍在学习和玩耍,fp-ts无法弄清楚这一点。我有一些 API 调用,我想将所有成功的响应和所有错误收集到数组中。

所以,我尝试使用array.sequence

这对响应很好,但我只收到来自 API 调用的最后一个错误。有没有办法将所有错误收集到一个数组中?

下面我编写了进行 API 调用的函数,以防万一我在那里遇到问题。

0 投票
1 回答
838 浏览

fp-ts - 在 fp-ts 中使用 Option 而不是 typescript 的 optional 有什么好处(问号)

我开始使用 fp-ts 并且想知道使用 Option 类型而不是 typescript 由问号表示的可选值的默认概念有什么优势?

0 投票
0 回答
202 浏览

typescript - 转换任务> 到 ReaderTask带 FP-TS

我正在寻找一种将 a 转换Task<Reader<A, B>>ReaderTask<A, B>使用 TypeScript 的简洁方法。以下似乎可行,但我想知道该功能是否已在 FP-TS 中可用。

0 投票
1 回答
344 浏览

typescript - 管理函数式编程和 fp-ts 中的错误

我对函数式编程非常陌生,特别是fp-ts.

我最近苦苦挣扎的是使用数组并将它们链接到不同的 Monad 中,同时保留与每个步骤相关的一些细节。

假设我们有一个程序

  1. 获取一些数据作为字符串
  2. ITitle如果可能,将字符串解析为数组;类型可以是Option<ITitle[]>
  3. ITitle将它们映射到可能执行一些异步更新的数组中;类型可以是TaskEither<IError, ITitle>
  4. 打印结果(如果可用),包括失败及其特定错误

更新:
我正在用更具体的问题更新问题: