Typescript 有没有在接口中声明getter的方法?

Typescript 有没有在接口中声明getter的方法?,typescript,typescript1.5,Typescript,Typescript1.5,我的课程如下(仅展示部分): 导出类LinkedListNode扩展windward.WrObject实现了LinkedListNode{ public get next():LinkedListNode{ 返回此。_next===此。_列表。_first?null:此。_next; } } 因此,在接口中,我想将next声明为一个方法。但是,以下情况不起作用: export interface ILinkedListNode<t> { get next() : Li

我的课程如下(仅展示部分):

导出类LinkedListNode扩展windward.WrObject实现了LinkedListNode{
public get next():LinkedListNode{
返回此。_next===此。_列表。_first?null:此。_next;
}
}
因此,在接口中,我想将next声明为一个方法。但是,以下情况不起作用:

export interface ILinkedListNode<t> {
       get next() : LinkedListNode<t>;
}
导出接口ILinkedListNode{
get next():LinkedListNode;
}
以下内容确实有效,但不准确:

export interface ILinkedListNode<t> {
       next : LinkedListNode<t>;
}
导出接口ILinkedListNode{
下一步:LinkedListNode;
}
有没有在接口中声明getter的方法?getter不同于成员变量,例如,在发布对象时,它不会传递给web工作人员


谢谢-dave

不,虽然这在其他语言中是可能的,例如,但在TypeScript中目前是不可能的

如果您想要这种行为,最好将其作为一种方法:

export interface ILinkedListNode<t> {
    getNext(): LinkedListNode<t>;
}
导出接口ILinkedListNode{
getNext():LinkedListNode;
}

否,尽管这在其他语言(如)中是可能的,但在TypeScript中目前是不可能的

如果您想要这种行为,最好将其作为一种方法:

export interface ILinkedListNode<t> {
    getNext(): LinkedListNode<t>;
}
导出接口ILinkedListNode{
getNext():LinkedListNode;
}

在写这篇文章的时候,没有办法完成你想要的

有一个日期为2014年7月的功能,该功能将在他们实施后立即可用

要~simulate~满足您的需求,唯一的方法就是按照David Sherret在回答中所说的做:创建一个getter方法

export interface ILinkedListNode<t> {
  getNext(): LinkedListNode<t>;
}
导出接口ILinkedListNode{
getNext():LinkedListNode;
}

尽管如此,我还是建议您现在只在界面内创建属性,并在将来可用时将其更改为~readonly~或~get~版本。

在撰写本文时,无法实现您想要的功能

有一个日期为2014年7月的功能,该功能将在他们实施后立即可用

要~simulate~满足您的需求,唯一的方法就是按照David Sherret在回答中所说的做:创建一个getter方法

export interface ILinkedListNode<t> {
  getNext(): LinkedListNode<t>;
}
导出接口ILinkedListNode{
getNext():LinkedListNode;
}

尽管如此,我建议您现在只在界面内创建属性,并在将来可用时将其更改为~readonly~或~get~版本。

问题在于这两个版本并不相同。我们正在从web workers向传递对象,并且传递了一个成员变量,但没有传递getter。我们使用接口来定义我们在这些消息中接收到的内容,在这种情况下,将其添加为成员是不准确的。@DavidThielen听起来好像您可以在不希望getter可用的地方完全不使用它。@SteveFenton问题是我们真的希望在某些地方使用接口来设置链表。但要做到这一点,它需要列出所有公共方法。然而,这妨碍了正确处理传递给web worker或从web worker传递来的对象。这是一个有点不寻常的用例,但为了让这一切都正常工作,我们需要在接口中显式地使用它作为getter。哦,好吧……问题是这不一样。我们正在从web workers向传递对象,并且传递了一个成员变量,但没有传递getter。我们使用接口来定义我们在这些消息中接收到的内容,在这种情况下,将其添加为成员是不准确的。@DavidThielen听起来好像您可以在不希望getter可用的地方完全不使用它。@SteveFenton问题是我们真的希望在某些地方使用接口来设置链表。但要做到这一点,它需要列出所有公共方法。然而,这妨碍了正确处理传递给web worker或从web worker传递来的对象。这是一个有点不寻常的用例,但为了让这一切都正常工作,我们需要在接口中显式地使用它作为getter。哦,好吧。。。