自引用打字稿 Class

Self Referencing Typescript Class

我有一个 JSON 对象,我想用 angular2 打字稿 class 表示它。 JSON 对象中有一个它自己类型的对象数组。 JSON 对象如下所示:

{ 
  "data": {
     "id": 5
     "type": "taxons",
     "attributes": {
       name: "Vehicles & Vehicle Accessories",
       "taxons": [{
         "id": 8,
         "type": "taxons",
         "attributes": {
            name: "Make",
            "taxons": []
         },
         "id": 9,
         "type": "taxons",
         "attributes": {
            name: "Model",
           "taxons": []
         }
        }]
  }
}

当我在打字稿中创建 taxon 模型时,我陷入了如何在 taxons 数组中表示自引用 taxon 的问题。 我目前有这样的class。

export class Taxon {
  constructor (
    public id: number,
    public name: string,
    public taxons: //I am stuck here.
    )
}

如何获取对 self 的引用,以便我可以拥有类似

的内容
public taxons: Array<self>

或者我还能怎么做才能获得预期的行为。

我建议通过如下界面执行此操作:

interface IFoo {
    id: number;
    name: string;
    foos?: IFoo[];
}

var foo: IFoo = {
    id: 1,
    name: 'name 1',
    foos: [
        {id: 2, name: 'child 2'}
    ]
}

关键是使用 ?

使 foos 属性 可选

如果确实需要,您也可以使用 class。 您所要做的就是指定类型。

export class Taxon {
  constructor (
    public id: number,
    public name: string,
    public taxons: Taxon[]
    )
}