在TypeScript中不能使用`$ {document).ready`

时间:2019-03-30 14:01:41

标签: jquery typescript

在TypeScript中使用$(document)会出现错误Supplied parameters do not match any signature of call target.

error screen

我正在使用TypeScript 3.1,jQuery 3.3.1和@ types / jQuery 3.3.29。

$(document)是否已弃用,我应该使用其他方法还是类型定义文件中的错误?

编辑: 此TypeScript文件的整个主体基本上是“ Hello World!”。

$(document).ready(() => {
    console.log("Hello World!");
});

1 个答案:

答案 0 :(得分:2)

private updateURL(date: Date){ this.props.history.replace(`/?date=${formatDate(date)}`); } 有两个功能等效的变体,第一个是$(document).ready(handler),第二个是直接的$().ready(handler)

在jQuery 3.0中,不建议使用前两个,仅保留$(handler)。官方的理由是:

  

这是因为选择与$(handler)方法的行为无关,效率低下并且可能导致对该方法行为的错误假设。

TypeScript定义文件只是不包含不建议使用的语法,为了向后兼容,该语法仍然有效。您的脚本应如下所示:

.ready()