2012-12-27 73 views
1

我正在使用VS 2012和TypeScript与jQuery。我把现有JS应用到TS,我有以下问题:TypeScript智能感知和jQuery问题

$(window).load(function() { 
//stuff 
}); 

$(窗口).load得到了强调和错误是“提供的参数不匹配,通话对象的任何签名”。 我使用jquery 1.7.2和这个jquery.d.ts jquery ts注解。 我在文件顶部添加了引用链接。

我在做什么错?

编辑: 当然,我已经在VS中安装了打字稿,它并没有改变任何东西来编辑参数,它可以是“窗口”或任何其他东西,它不断发生错误。 它所期望的load()的定义是(url:string,data:any,complete:any),而在jQuery doc中它只是一个函数。

+0

已安装打字稿为VS2012 –

+0

是否到位的$(窗口)接受的$(document)?如果是这样,d.ts文件必须只有文档,字符串和字符串/对象的重载 - 这意味着需要更新定义才能允许窗口。 – Fenton

+0

编辑答案:) – Rayjax

回答

2

Typescript定义只包含1个特定版本的定义加载函数,从url http://api.jquery.com/load/加载html的加载函数。打字稿仍然在阿尔法不要忘记。

这不应该影响您使用Typescript,除非您将继续收到警告。

作为替代方案,你可以更改您的代码类似如下:

$(window).on("load", function() { 
    /// so stuff 
}); 
+0

谢谢,我有这样的想法,我是另一种负载方法的定义,但我没有考虑使用。 我会这样做,但对于TS中的错误,问题在于它根本不能在JS中编译;有什么方法可以“跳过”我知道不是真正问题的错误吗? – Rayjax

+0

解决此类错误的一种简单方法是将有问题的对象转换为'',例如'( $(window)).load(()=> {})''。 –