我是fp-ts
的新手,我看到一些人在不同的文章中使用Either<string, A>
和其他人使用Either<Error, A>
。我想知道两者的区别,我应该如何选择使用哪一个?谢谢!
Either
是帮助您从函数返回两个可能值之一的工具。传统上,它用于在流程可能失败时向调用站点发送消息。Left
变量返回失败值,而Right
变量返回成功值。
因此,对于Either<string, A>
,该函数承诺在成功时返回Right<A>
值,或者在失败时返回Left<string>
值。在这种情况下,失败很可能是一个包含描述失败的消息的字符串。Either<Error, A>
是类似的,除了该函数的作者使用现有的Error
类来包含有关失败的信息。
由函数API的设计者决定在失败时返回什么值是有意义的,但两者都不一定是错误的。
顺便说一下,Left
的值是失败的,Right
的值是成功的只是惯例。有一个函数在某些情况下返回Either<number, string>
和number
,在其他情况下返回string
,这是完全有效的。