5

我刚刚将我的代码升级到 Typescript 0.9,更新了 Jquery、JqueryUI、Knockout、Knockout.Mapping 和 Knockout.Validation 的 DefinitiveTyped 定义。

代码看似编译,我看到了正确的输出 js 文件。

然而 VS 强调了obs(value: T)setter on KnockoutObservable<T>and的每次使用,并KnockoutObservableArray<T>说我提供了无效的类型。

Error   27  Supplied parameters do not match any signature of call target.  
Error   28  Could not select overload for 'call' expression.

我有大约 100 个这样的错误。当我尝试输入一个时,intellisense 会为每种类型提供(): T-(value: bool):void是的,无论指定的 TI 是什么,它都是布尔值。它是 VS、编译器还是 WebEssentials 错误?如何使〜100个错误消失?

编辑(视觉证据): 在此处输入图像描述 lot.TimeOnServer是一个KnockoutObservable<number>data.TimeOnServer是一个number

是的,我已经重启了 vs+windows。错误仍然存​​在。

4

1 回答 1

2

我遇到了同样的问题。我还没有调查为什么会发生这种情况,但是在我的项目中注释掉了 knockout.validation.d.ts 中的最后一个接口后,错误就消失了。不过,这会中断您对 isValid 的调用以进行验证。

interface KnockoutSubscribableFunctions {
  isValid: KnockoutComputed<boolean>;
  isValidating: KnockoutObservable<boolean>;
  rules: KnockoutObservableArray<KnockoutValidationRule>;
}

我添加了以下内容以取回 isValid 函数

interface KnockoutObservableBase {
    isValid: KnockoutComputed<boolean>;
    isValidating: KnockoutObservable<boolean>;
    rules: KnockoutObservableArray<KnockoutValidationRule>;
}
于 2013-07-02T03:34:20.017 回答