我正在使用fp-ts来处理我的应用程序中的验证。我想编写一个接受验证器列表并在单个输入上运行所有验证器的函数。
这些是我想使用的类型:
import { Either } from "fp-ts/lib/Either";
import { NonEmptyArray } from "fp-ts/lib/NonEmptyArray";
type Validation<E, A> = Either<NonEmptyArray<E>, A>;
type Validator<E, A> = (a: A) => Validation<E, A>;
declare function validations<E, A>(vs: Validator<E, A>[], a: A): Validation
在内部,我想validations
根据fp-tsValidation
来实现。我正在关注这个例子,但是Validator
当我想动态地生成该列表时,它需要静态地知道 s 的列表。
请注意,为简单起见,我将 Validation 类型设置为 NonEmptyArray 错误,因为我主要对如何组合来自动态构造的数组的验证感兴趣。
最后,如果验证列表为空,我们可以假设输入是有效的。
如何validations
使用getValidation
from提供的组合器来实现fp-ts