1
export class LinkedList<t>
我目前使用創建一個超類:
export class ListBody extends collections.LinkedList<Element>
而這一切的偉大工程。但是,我在其他幾個類中聲明瞭這個類,並且在每個地方它實際上只需要幾個Element的超類。所以我想在茨艾倫其他地方,而不是聲明:
this.body = new moduleListBody.ListBody();
聲明:
this.body = new moduleListBody.ListBody<ElementOne | ElementTwo>();
有沒有辦法做到這一點?我不能跳過ListBody類,因爲我有很多代碼在Element對象上運行。
更新:例如
export class Element {
}
export class LinkedList<t> {
public add(index : number, value : t);
public add(index : number, collection : LinkedList<t>);
public add(index : number, collection : t[]);
add(index : number, arg : t | LinkedList<t> | t[]) {
}
}
export class ListBody <T extends Element> extends LinkedList<T> {
public fubar(): void {
var element = new Element();
this.add(0, element);
}
}
非常感謝你! – 2015-03-27 14:42:42
這不起作用。當我調用LinkedList上的方法傳遞Element對象時,我收到了一個編譯錯誤 - 元素不能分配給類型爲T的參數。 – 2015-03-27 16:10:51
有趣,你可以發佈[gist](https://gist.github.com/ )與相關的代碼。我可以嘗試幫助你! – wjohnsto 2015-03-27 16:13:34