我有一个课程如下(只显示部分):
export class LinkedListNode<t> extends windward.WrObject implements ILinkedListNode<t>{
public get next():LinkedListNode<t> {
return this._next === this._list._first ? null : this._next;
}
}
所以在接口中我想声明下一个方法。但是,以下内容不起作用:
export interface ILinkedListNode<t> {
get next() : LinkedListNode<t>;
}
以下工作正常,但不准确:
export interface ILinkedListNode<t> {
next : LinkedListNode<t>;
}
有没有办法在界面中声明一个getter? getter与成员变量不同,例如,在发布对象时,它不会传递给Web worker。
谢谢 - 戴夫
答案 0 :(得分:3)
不,虽然这在C#等其他语言中是可行的,但目前在TypeScript中是不可能的。
如果您想要这种行为,最好将其作为一种方法:
export interface ILinkedListNode<t> {
getNext(): LinkedListNode<t>;
}
答案 1 :(得分:2)
在写作的那一刻,没有办法实现你想要的。
自2014年7月起有object\["property"\]
日期,该功能将在实施后立即提供。
〜模拟〜你需要的唯一方法是做David Sherret在他的回答中所说的:创建一个getter方法。
export interface ILinkedListNode<t> {
getNext(): LinkedListNode<t>;
}
虽然,我建议现在只在界面中创建属性,并在将来可用时将其更改为~readonly~或~get~版本。