自从在 MVC 应用程序中通过 nuget 获取最新信息以来,jQuery.d.ts 中出现 100 多个错误

100+ errors in jQuery.d.ts since getting latest via nuget in MVC application

自从我使用 Visual Studio NuGet 包管理器更新到最新的 jQuery.d.ts 定义文件后,我现在在 jQuery.d.ts 文件中收到了数百个错误。

所有错误的模式都是这样的垂直线:

index(selector: string|JQuery|Element): number;

我假设它表示可选类型。错误大多类似于:

\Scripts\typings\jquery\jquery.d.ts(2797,34): error TS1005: Build: ',' expected.

默认生成操作是 TypeScriptCompile,但将其更改为 none 无效。

我是 运行 Visual studio 2013 Professional release 4,所以假设我有最新的 TypeScript 版本,但这看起来像是版本控制问题。

关于如何解决问题的任何想法。

TypeScript 在 Visual Studio 2013 版本 4(2014 年 11 月)之后更新(2015 年 1 月):

您可以在这里获取最新的 TypeScript 编译器: https://visualstudiogallery.msdn.microsoft.com/2d42d8dc-e085-45eb-a30b-3f7d50d55304

此外,您可能必须更新任何旧 csproj 文件中的 TypeScriptToolsVersion 设置:

它们目前可能是这样的:

<TypeScriptToolsVersion>1.0</TypeScriptToolsVersion>

VS 2013 版本 5 更改为 1.4:

<TypeScriptToolsVersion>1.4</TypeScriptToolsVersion>

当您现有的 VS 2013 项目使用了早期版本的 TypeScript,并且您想要升级到 jquery.d.ts 或 knockout.d.ts 的最新 nuGet 包时,安装最新的 TypeScript 编译器是不够。

安装最新的 TypeScript 后
https://visualstudiogallery.msdn.microsoft.com/2d42d8dc-e085-45eb-a30b-3f7d50d55304
您需要编辑项目定义文件才能启用 1.4 版功能。这是通过更改行来完成的
<TypeScriptToolsVersion>1.0</TypeScriptToolsVersion>

<TypeScriptToolsVersion>1.4</TypeScriptToolsVersion>

另外,请注意您的 TS 代码可能也需要一些更改。具体来说,FormData 构造函数不再将 HTML 元素作为参数。最简单的解决方法是像这样更改代码:
var formData = new FormData(<HTMLFormElement>$("#form")[0]);

var formEl = <HTMLFormElement>$("#form")[0]; var formData = new window['FormData'](formEl);

从 Visual Studio 2013 升级到 Visual Studio 2015 后,我遇到了同样的错误。

我按照其他答案中的建议将 <TypeScriptToolsVersion>1.0</TypeScriptToolsVersion> 更改为 <TypeScriptToolsVersion>1.4</TypeScriptToolsVersion>,它似乎有效,尽管 Visual Studio 2015 有一条警告建议我完全删除该行。

因此对于 Visual Studio 2015,从受影响的 .csproj 文件中删除 以下行似乎效果更好:

<TypeScriptToolsVersion>1.0</TypeScriptToolsVersion>