Typescript 0.9 + Knockout:奇怪的编译器错误

TDa*_*ver 5 knockout.js visual-studio-2012 typescript web-essentials

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

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

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

Error   27  Supplied parameters do not match any signature of call target.  
Error   28  Could not select overload for 'call' expression.
Run Code Online (Sandbox Code Playgroud)

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

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

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

And*_*May 2

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

interface KnockoutSubscribableFunctions {
  isValid: KnockoutComputed<boolean>;
  isValidating: KnockoutObservable<boolean>;
  rules: KnockoutObservableArray<KnockoutValidationRule>;
}
Run Code Online (Sandbox Code Playgroud)

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

interface KnockoutObservableBase {
    isValid: KnockoutComputed<boolean>;
    isValidating: KnockoutObservable<boolean>;
    rules: KnockoutObservableArray<KnockoutValidationRule>;
}
Run Code Online (Sandbox Code Playgroud)