从打字稿中的界面创建对象

时间:2019-02-12 16:00:03

标签: typescript

我是javascript和Typescript的新手。我试图从接口声明变量。我想在以后填充初始化变量的值。然后,我想将所有此类变量推入接口类型的数组。

这是正确的方法吗?

interface Car{
    name: string;
    year?: number;
}

let c1: Car = {} as Car;
c1.name = "Audi";

let c2: Car = {} as Car;
c2.name = "BMW";

let c: Array<Car> = [];
c.push(c1);
c.push(c2);

1 个答案:

答案 0 :(得分:0)

您将c1声明为类型Car的对象,然后您不必关心它,并使用{}对其进行初始化(错误地断言为Car) 。这没有任何意义。

改为使用let c1: Car = { name: 'Audi' };
然后let c: Array<Car> = [ c1, c2 ];声明并初始化数组。

interface Car {
    name: string;
    year?: number;
}

let c1: Car = { name: 'Audi' };
let c2: Car = { name: 'BMW', year: 2015 };

let c: Array<Car> = [c1, c2];

更短,更清洁,类似OOP。