只是为了说明我认为史蒂夫已经说过的话,如果你download the d.ts from DefinitelyTyped,并打开文件,你会看到Validator
接口(以及其他定义)。这是简单的把它扩大:
interface Validator {
format(template: string, ...arguments: string[]): string;
form(): bool;
element(element: any): bool;
resetForm(): void;
showErrors(errors: any): void;
numberOfInvalids(): number;
setDefaults(defaults: ValidationOptions): void;
addMethod(name: string, method: (value: any, element: any, ...params: any[]) => any, message?: any): void;
addClassRules(rules: any): void;
addClassRules(name: string, rules: any): void;
// Just add the unobtrusive element to this (typed as `any` if you don't have time to do anything more)
unobtrusive:any;
}
延长JQuery
和JQueryStatic
接口的其余工作已经做了你,其他地方的文件。您不会在unobtrusive
元素上获得任何类型的善意,但至少会对所有其余的Validator
代码进行类型检查。
对不起 - 在我脑海中,我想第二行使用了第一行中选择的表单!我会更新。 – Fenton 2013-03-02 21:03:26
再次感谢,但我无法让它工作。它抱怨重复的定义 - 从jquery.validate.d.ts我猜。我以另一种方式解决了它。看到我的答案。干杯 – Jonesie 2013-03-03 06:30:50
在这种情况下,您可能已经有了jQuery验证定义,您可以按照我所述进行扩展。如果你通过强制转换来实现,那么当你添加一个定义时,你需要使用需要删除的强制转换代码。 – Fenton 2013-03-03 09:03:03