在Visual Studio中使用TypeScript在lib.d.ts中出现100多个错误

use*_*734 5 asp.net-mvc visual-studio-2012 typescript visual-studio-2013

我有一个小型的MVC4网络应用程序,使用TypeScript作为客户端(~40 .ts文件).

当我将TS升级到0.9.1.1时,我现在看到lib.d.ts中的100多个错误出现在Visual Studio 2012中的错误列表中.

问题是不可避免的(我们团队的所有成员在升级时都得到了相同的东西),但实际上不可能可靠地重现.一些行为:

  • 只有在某个(看似随机的)时间之后,错误才会立即出现.
  • 它们通常会在保存文件时触发.
  • 它们是这样的:

    "所有命名属性必须是字符串索引器类型'any'的子类型"

  • 从项目中删除任何.ts文件或重新启动VS将使它们离开一段时间,但它们总是会回来.
  • 编译器仍然运行,并且正确生成所有.js文件.

我尝试在VS2012和VS2013 RC中设置一个新的空项目,然后开始逐个添加我们的TS类.在某些时候,错误将会出现,但是在确定可能启动的步骤时,回溯步骤已经证明是徒劳无功的.但是,它似乎只会在您接近15-20 .ts文件时发生.

我在这里结束了我的智慧.

PS.在错误列表中,在"项目"列下,它通常命名特定文件,而不是项目.通常它是一个定义文件,例如underscore.d.ts.为什么这会被命名为项目?

编辑:

我设法用一个.ts文件和一些定义文件重新创建它.

App.ts

module Application {
    export class Main {
        constructor(options?) {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

除了最新版本:

backbone.d.ts
jquery.d.ts
underscore.d.ts
backbone.relational.d.ts
Run Code Online (Sandbox Code Playgroud)

我做了很多快速的更改并保存到App.ts重现,即5秒内~10.这会建议文件权限错误吗?

bas*_*rat 0

看来这是因为打字稿语言服务中进行了优化。Visual Studio 尝试部分更新信息以进行分析,但一旦分析滞后,更新命令就会发生这种情况。

临时修复方法是剪切文件的全部内容,然后将其粘贴回来,这为语言服务提供了文件的全新视图。