【发布时间】:2014-01-07 05:56:05
【问题描述】:
interface I1 {
get(name: "templatePath"): string;
get(name: string): any;
}
interface I2 {
get(name: "baseClass"): string;
get(name: string): any;
}
interface I3 extends I1, I2 {
}
class C3 implements I3 {
get(name: string) {
return name;
}
}
我得到一个错误指示,属性“get”的类型在这两个接口中并不相同。 (1) 我不明白这有多重要,并且 (2) 我不知道如何解决这个问题。
具体来说我的界面是这样的:
interface IGotoPane extends dijit._WidgetBase, dijit._TemplatedMixin, dijit._WidgetsInTemplateMixin {
inputCoordinates: dijit._Widget;
}
我发现我可以通过重新声明几种方法来消除编译器错误:
interface I3 extends I1, I2 {
get(name: string): any;
}
或者就我的具体问题而言,
interface IGotoPane extends dijit._WidgetBase, dijit._TemplatedMixin, dijit._WidgetsInTemplateMixin {
inputCoordinates: dijit._Widget;
get(name: string): any;
set(name: string, value: any, raiseChangeEvent?: boolean): void;
set(values: Dojo.PropertiesMap): void;
watch(prop: string, callback: Dojo.WatchCallback<any>): Dojo.WatchHandle;
}
为什么需要这样做?
【问题讨论】:
标签: dojo typescript