可以在此特定功能上下文中强制实施类型

Possible to enforce type in this specific functional context?

本文关键字:施类型 类型 上下文 功能上 功能      更新时间:2023-09-26

我正在使用具有特定语法的lodash,我想使用facebook flowtype强制执行类型。 这是代码:

 let errorMessageBag = _.flow( objectWithFieldsToValidate, requiredFields, 
                             stringLengthValidationCheck, emailValidation)
 let result = errorMessageBag(fields, linkmodel())

我想强制执行errorMessageBag调用以传递 2 个参数、字段和linkmodel()。为了简单起见,假设我希望它们string,string.

流参数是下面函数的名称。这是第一个接受 2 个参数objectWithFieldsToValidate,但如果我输入它们,它不会传播。无论如何要解决这个问题?

一个简单的解决方法是将errorMessageBag(fields, linkmodel())封装到一个具有易于键入参数的函数中。所以你最终调用了返回errorMessageBag(fields, linkmodel())的新函数。

这个怎么样:

// assuming `void` is the return type of validation
let errorMessageBag: (x: string, y: string) => void = ...; 
let result = errorMessageBag(fields, linkmodel())