为什么jquery.d.ts TypeScript定义文件会抛出编译错误?

时间:2012-11-29 16:45:46

标签: typescript

我在VSTS 2012中有一个基本的MVC4 Web项目,可以使用TypeScript。

我安装了此版本的TypeScript:TypeScriptSetup.0.8.1.msi

我有来自http://typescript.codeplex.com/SourceControl/changeset/view/fe3bc0bfce1f#typings%2fjquery.d.ts

的jquery.d.ts文件

我收到所有“索引签名”定义的编译错误。第一个编译错误是使用JQueryAjaxSettings:

 headers?: { [key: any]: any; };

这是错误:

Error 9 Index signatures may only take 'string' or 'number' as their parameter
C:\Development\TypeScript\ScriptGen\ScriptGen.Web\Scripts\jquery.d.ts 37 18 app.ts

编译器不喜欢定义为任何类型。

我应该将密钥类型更改为字符串还是还有其他我缺少的东西?

1 个答案:

答案 0 :(得分:7)

您使用的是旧版本的jquery.d.ts。从那时起编译器已经改变为禁止any索引器。任何较新版本的jquery.d.ts(例如this one)都可以正常工作,或者您可以根据需要将any更改为string(其中有多个其他修复程序)但是你可能想要的过渡期间的文件。