gpt4 book ai didi

typescript - TypeScript 0.9 搞砸了 JQuery 定义

转载 作者:搜寻专家 更新时间:2023-10-30 21:18:29 24 4
gpt4 key购买 nike

我刚刚升级到 TypeScript 0.9,我的 JQuery 定义文件(针对 JQuery 1.8)突然爆炸了。具体来说,接口(interface) JQuery 报告其中定义的每个方法的错误。他们都报告“所有属性必须是字符串索引器类型‘HTMLElement’的子类型。

interface JQuery {

ajaxComplete(handler: any): JQuery;
ajaxError(handler: (event: any, jqXHR: any, settings: any, exception: any) => any): JQuery;
ajaxSend(handler: (event: any, jqXHR: any, settings: any, exception: any) => any): JQuery;
ajaxStart(handler: () => any): JQuery;
ajaxStop(handler: () => any): JQuery;
ajaxSuccess(handler: (event: any, jqXHR: any, settings: any, exception: any) => any): JQuery;
... //All reporting same error
}

如您所料,JQuery 接口(interface)在我的项目中的许多不同文件中定义。这是统一接口(interface)的错误,还是我遗漏了一些需要对定义文件进行的更改?

最佳答案

这不是错误。这是一个计划中的功能。这是因为一旦定义了索引器,它也可以用于访问属性,因此属性需要是索引器的子类型。例如:

interface Foo{
[x:string]:number; // Now all properties must be subtypes of number
bar:number ; // okay
baz:string ; // Error
}

Try It

您可以在这里找到可用的 Jquery 定义:https://github.com/borisyankov/DefinitelyTyped/blob/master/jquery/jquery.d.ts

关于typescript - TypeScript 0.9 搞砸了 JQuery 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17201854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com