Теперь, когда Knockout 3.5.0 был выпущен, у меня возникают проблемы при получении проверки Knockout для компиляции с новой структурой определения типа, которая поставляется с Knockout 3.5.0.
Мне удалось получить проверку Knockoutчтобы должным образом интегрировать его с новым файлом определения типа из 3.5.0, выполнив следующие действия:
first: добавлен импорт в начале файла knockout valiation index.d.ts:
import { Observable, ObservableArray, Computed, Static, SubscribableFunctions, ObservableExtenderOptions } from "knockout";
секунда: измененные ссылки KnockoutObservable, KnockoutComputed и KnockoutObservableArray на Observable, Computed и ObservableArray
треть: обернутые расширения интерфейсов Knockout в декларацию оператора «нокаут» модуля: интерфейс экспорта
declare module "knockout" {
interface Static {
validation: KnockoutValidationStatic;
validatedObservable<T>(initialValue?: T): Observable<T>;
applyBindingsWithValidation(viewModel: any, rootNode?: any, options?: KnockoutValidationConfiguration): void;
}
export interface SubscribableFunctions<T> {
isValid: Computed<boolean>;
isValidating: Observable<boolean>;
rules: ObservableArray<KnockoutValidationRule>;
isModified: Observable<boolean>;
error: Computed<string>;
setError(error: string): void;
clearError(): void;
}
}
Это прекрасно работает, но теперь я получаю ошибки компиляции на всех вызовах .extend, которые помечают наблюдаемые требованиями.Например:
this.settings.name.extend({ required: true });
выдает ошибку: Никакая перегрузка не соответствует этому вызову.
TS2769 TypeScript (TS) Никакая перегрузка не соответствует этому вызову.Перегрузка 1 из 2 ,, выдала следующую ошибку.Аргумент типа не может быть назначен параметру типа.Объектный литерал может указывать только известные свойства и не существует в типе.Перегрузка 2 из 2 ,, выдала следующую ошибку.Аргумент типа не может быть назначен параметру типа.Объектный литерал может указывать только известные свойства и не существует в типе.
Есть предложения о том, как переработать файл index.d.ts проверки правильности выбивки, чтобы должным образом расширить метод расширений Knockout?
Для справки файл index.d.ts для проверки выбивания: здесь .