首页 > 解决方案 > 在打字稿中从界面创建对象

问题描述

我是 javascript 和打字稿的新手。我正在尝试从接口声明变量。我想稍后填充初始化变量的值。然后我想将所有这些变量推送到接口类型的数组中。

这是正确的方法吗?

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);

标签: typescript

解决方案


您声明c1为类型的对象,Car然后您不关心它并使用{}(错误地断言为 a 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。


推荐阅读