Javascript 即使使用相同的数据类型,也无法在数据属性为的Typescript中扩展接口
我对Typescript(使用Visual Studio 2012和Typescript v0.9.5)有一个奇怪的问题,希望有人能澄清 以下代码可以正常工作:Javascript 即使使用相同的数据类型,也无法在数据属性为的Typescript中扩展接口,javascript,typescript,Javascript,Typescript,我对Typescript(使用Visual Studio 2012和Typescript v0.9.5)有一个奇怪的问题,希望有人能澄清 以下代码可以正常工作: interface IA { data: any; } interface IB { data: any; } interface IC extends IA, IB { } 但是,当使用JQueryEventObject的声明时,如下所示: interface JQueryEventObject extends
interface IA {
data: any;
}
interface IB {
data: any;
}
interface IC extends IA, IB { }
但是,当使用JQueryEventObject
的声明时,如下所示:
interface JQueryEventObject extends BaseJQueryEventObject,
JQueryInputEventObject, JQueryMouseEventObject, JQueryKeyEventObject,
JQueryPopStateEventObject { }
其中BaseJQueryEventObject声明为:
interface BaseJQueryEventObject extends Event {
data: any;
delegateTarget: Element;
isDefaultPrevented(): boolean;
isImmediatePropogationStopped(): boolean;
...
}
当我尝试这样做时:
interface IMyInterface {
data: any;
}
interface IMyCombinedInterface extends JQueryEventObject, IMyInterface { }
它发出以下信息:
接口IMyCombinedInterface
不能同时扩展类型jqueryventobject
和IMyInterface
:类型jqueryventobject
和IMyInterface
的属性类型数据类型不相同
有人知道我是否做错了什么,或者这可能是一个bug吗?以下使用最新的TypeScript(1.5)+IDE编译,没有显示错误:
interface JQueryEventObject extends BaseJQueryEventObject,
JQueryInputEventObject, JQueryMouseEventObject, JQueryKeyEventObject { }{ }
interface IMyInterface {
data: any;
}
interface IMyCombinedInterface extends JQueryEventObject, IMyInterface { }
所以
是一个错误,但已被修复 这对我来说似乎是一个bug。这是使用0.9.1.1为我编译的,您正在编译什么版本的TS。我正在使用TS的v0.9.5。我刚刚升级到0.9.5。我还是不明白这个错误。作为一些诊断,声明IMyInterface和JQueryEventObject类型的2个变量,并查看intellisense为每个变量的数据属性提供了什么。我还建议您验证是否拥有来自DefinitelyTyped的jquery.d.ts的最新版本。一些较旧版本的d.ts文件已被用于解决此编译器错误