I just updated Typescript from v2.3 to v2.4, and now it is giving me an error on the knockout.validation.d.ts lines:
interface KnockoutSubscribableFunctions
The problem exists because of differences in types of the:
[key: string]: KnockoutBindingHandler;
And other params:
isValid: KnockoutComputed;
isValidating: KnockoutObservable;
rules: KnockoutObservableArray;
isModified: KnockoutObservable;
error: KnockoutComputed;
setError(error: string): void;
clearError(): void;
The error you got basically says: the KnockoutComputed type can't be assigned to the KnockoutBindingHandler type.
Probably this compile-time checking are improved in TS 2.4, that's why you hadn't had this problem previously.
Your solution works:
[key: string]: any;//KnockoutBindingHandler;
And if you can change this code you may try another a little bit "prettier" solution:
[key: string]: any | KnockoutBindingHandler;
Which might provide you some additional autocomplete help.