网站搜索

asp.net mvc - 在 Visual Studio 中使用 TypeScript 时 lib.d.ts 中出现 100 多个错误


我有一个使用 TypeScript 作为客户端(大约 40 个 .ts 文件)的比较小的 MVC4 Web 应用程序。

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

这个问题是无法避免的(当我们团队的所有成员升级时都遇到了同样的情况),但实际上几乎不可能可靠地重现。一些行为:

  • 错误不会立即出现,而是在经过一定(看似随机)的时间后才会出现。
  • 它们通常会在保存文件时被触发。
  • 它们是这样的事物:

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

  • 从项目中删除任何 .ts 文件或重启 VS 会使它们暂时消失,但它们总会回来。
  • 编译器仍然在运行,所有的 .js 文件都已正确生成。

我曾尝试在 VS2012 和 VS2013 RC 中创建一个新的空项目,然后开始逐一添加我们的 TS 类。在某些时候,错误会出现,但回溯步骤在确定可能引发错误的原因方面完全无效。不过,这似乎只会在你接近 15-20 个 .ts 文件时发生。

我到极限了。

附言。在错误列表中,在“项目”列下,它通常会列出某个特定的文件,而不是一个项目。很多时候它是一个定义文件,例如 underscore.d.ts。为什么会把它命名为项目呢?

编辑:

我已经设法用一个 .ts 文件和一些定义文件重现了这个。

应用.ts

module Application {
    export class Main {
        constructor(options?) {
        }
    }
}

除了最近的大多数版本之外:

backbone.d.ts
jquery.d.ts
underscore.d.ts
backbone.relational.d.ts

我对 App.ts 进行了许多快速更改和保存,例如在 5 秒内大约 10 次。这可能表明文件权限错误吗?

答案#1

前往 visualstudiogallery

并确保你安装了最新版本的 TypeScript。

答案#2

这似乎是由于 TypeScript 语言服务中的优化所致。Visual Studio 尝试部分更新分析信息,但一旦分析落后于更新命令,就会发生这种情况。

一个临时的解决方法是剪切文件的全部内容,然后再粘贴回去,这样可以让语言服务对文件有一个全新的视图。

相关文章