如何将数组推入typeScript中的类

时间:2019-03-18 16:34:27

标签: typescript

所以我想将一个类的3个实例推到另一个类的数组中,但我无法弄清问题所在:

到目前为止我的代码:

这些是课程

export class FudbalskiKlub implements IFudbalskiKlub {
    public registarskaOznaka: number;
    public nazivKluba: string;
    public krazakOpis: string;
    public listaIgraca: [IIgrac];

    constructor(ID: number, nazivK: string, kratakOP: string, listaIG: [IIgrac]){
        this.registarskaOznaka = ID;
        this.nazivKluba = nazivK;
        this.krazakOpis = kratakOP;
        this.listaIgraca = listaIG;
    }
}


export class Igrac implements IIgrac {
    public registarskaOznaka: number;
    public imeIgraca: string;
    public prezimeIgraca: string;
    public godisteIgraca: number;
    public prvaPostava: boolean;
    constructor(iDIgrac: number, imeIg: string, prezimeIg: string, godisteIg: number, prvaPo: boolean) {
        this.registarskaOznaka = iDIgrac;
        this.imeIgraca = imeIg;
        this.prezimeIgraca = prezimeIg;
        this.godisteIgraca = godisteIg;
        this.prvaPostava = prvaPo;
    }
}

import {Igrac} from "./index";
import {FudbalskiKlub} from "./index";

let newIgrac1 = new Igrac(13, "Nikola", "Nikolic", 1991, true);
let newIgrac2 = new Igrac(14, "Petar", "Petrovic", 1989, true );
let newIgrac3 = new Igrac(15, "Damjan", "Nikolic", 1800, false);

export let x3 = [newIgrac1, newIgrac2, newIgrac3];

export let newFudbalskiKlub = new FudbalskiKlub(1002,"My Sports Club", "Best Club In The Whole World", [newIgrac1]);

问题是,当我尝试使用x3而不是newIgrac1时,它不会让我拥有由我在此类中使用其他构造函数制作的3个对象,而我不知道为什么。

2 个答案:

答案 0 :(得分:2)

  

当我尝试使用x3而不是[newIgrac1]时,它不会让我

修复

listaIG: [IIgrac]更改为listaIG: IIgrac[]

为什么

[IIgrac]是单个项目的 tuple IIgrac[]是一个数组

答案 1 :(得分:-1)

由于x3被定义为数组, 尝试推送到x3

x3.push(newIgrac1, newIgrac2, newIgrac3  )