繁体   English   中英

即使具有相同的数据类型,也无法在具有数据属性的Typescript中扩展接口

[英]Unable to extend interface in Typescript with data property on even with the same data type

我对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 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不能同时延伸类型JQueryEventObjectIMyInterface :属性的类型data类型的JQueryEventObjectIMyInterface是不相同的。

有人知道我在做错什么吗,或者这可能是一个错误?

使用最新的TypeScript(1.5)+ IDE可以很好地进行以下编译:

interface JQueryEventObject extends BaseJQueryEventObject,
    JQueryInputEventObject, JQueryMouseEventObject, JQueryKeyEventObject { }{ }

interface IMyInterface {
    data: any;
}

interface IMyCombinedInterface extends JQueryEventObject, IMyInterface { }

所以

是一个错误,但此后已修复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM