@formkit/validation

简介

FormKit的第一方验证包/插件。阅读验证文档以获取使用说明。

函数

createMessageName()

给定一个节点,此函数返回应在验证消息中使用的名称。这是validationLabel属性,label属性,或输入的名称(按此顺序)。

签名

createMessageName(node: FormKitNode): string;

参数

  • node — 要显示的节点

返回

createValidationPlugin()

实际的验证插件函数。一切都必须在这里引导。

签名

createValidationPlugin(baseRules?: FormKitValidationRules): (node: FormKitNode) => void;

参数

  • baseRules 可选 — 要包含在插件中的基本验证规则。默认情况下,FormKit通过defaultConfig使@formkit/rules包中的所有规则可用。

getValidationMessages()

从给定节点及其所有后代中提取所有验证消息。这不是反应性的,每次消息更改时都必须重新调用。

签名

getValidationMessages(node: FormKitNode): Map<FormKitNode, FormKitMessage[]>;

参数

  • node — 要从中提取验证规则的FormKit节点 — 以及其后代。

TypeScript

FormKitValidationHints

影响应用验证方式的特殊验证属性。

interface FormKitValidationHints {
    blocking: boolean;
    debounce: number;
    force: boolean;
    name: string;
    skipEmpty: boolean;
}

FormKitValidationMessage

本地化验证消息函数的接口。

interface FormKitValidationMessage {
    (...args: FormKitValidationI18NArgs): string;
}

FormKitValidationMessages

本地化验证消息注册表的接口。

interface FormKitValidationMessages {
    [index: string]: string | FormKitValidationMessage;
}

FormKitValidationRules

FormKit验证规则被构造为一个键/函数对的对象,其中对象的键是验证规则名称。

interface FormKitValidationRules {
    [index: string]: FormKitValidationRule;
}

FormKitValidation

定义完全解析的验证规则的样子。

export type FormKitValidation = {
    rule: FormKitValidationRule;
    args: any[];
    timer: number;
    state: boolean | null;
    queued: boolean;
    deps: FormKitDependencies;
    messageObserver?: FormKitObservedNode;
} & FormKitValidationHints;

FormKitValidationI18NArgs

传递给i18n插件中验证消息的参数。

export type FormKitValidationI18NArgs = [
    {
        node: FormKitNode;
        name: string;
        args: any[];
        message?: string;
    }
];

FormKitValidationIntent

定义验证规则在解析时的样子,但并不一定已经替换了验证规则。

export type FormKitValidationIntent = [string | FormKitValidationRule, ...any[]];

FormKitValidationRule

通用验证规则的签名。它接受一个输入 - 通常是一个字符串 - 但应该能够接受任何输入类型,并返回一个布尔值,表示它是否通过了验证。

export type FormKitValidationRule = {
    (node: FormKitNode, ...args: any[]): boolean | Promise<boolean>;
    ruleName?: string;
} & Partial<FormKitValidationHints>;