スティーブがすでに言ったことを説明するために、DefinitelyTypedからd.tsをダウンロードしてファイルを開くと、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
コードはすべて型チェックされます。