有没有办法在界面中声明一个getter?

时间:2015-08-12 17:15:19

标签: typescript typescript1.5

我有一个课程如下(只显示部分):

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。

谢谢 - 戴夫

2 个答案:

答案 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~版本。