我正在处理包含许多验证器的验证库。每个验证器都带有一条消息作为第一个参数,后跟任何配置值。
库的用户可以传入消息函数的映射,该映射将由库应用于验证器。
const configuredValidators = Lib.configure(messages);
如果在没有此配置步骤的情况下使用这些验证器,可以将它们导入到需要它们的文件中:
import { exampleValidator } from 'lib'
但是,通过预先配置验证器,库的用户现在需要将这些验证器传递给需要它们的任何函数。如果这些函数距离配置点很远,那么现在需要添加一个参数来传递配置的验证器。
当采用OO方法时,这个问题有很多解决方案,但功能解决方案是什么?如何在整个应用程序中使用这些部分应用的验证器,而无需用户混淆许多其他功能的签名?
据我所知,从函数内部向外部变量的引出会引发纯度问题,但我想我正在寻找导入的便利,但是在运行时部分应用了值的函数。 / p>
注意:出于本问题的目的,假设图书馆的用户将采用功能性方法。
答案 0 :(得分:1)
我认为这不是你的问题。 :-)您的用户可以使用导出配置的验证器的模块解决此问题:
export const configuredValidators = Lib.configure(messages); // Or similar
然后他们只是从该模块导入而不是直接从库中导入验证器。