undefined []缺少类型的以下属性

时间:2020-08-25 18:36:03

标签: angular typescript

当我尝试将空值分配给已声明其类型的数组时出现此错误。这是导致错误的代码,

export interface EmiCalculator {
    emi: number;
    months: number;
    position: number;
    principal: number;
    roi: number;
}

下面是产生错误的行,

emiResults: EmiCalculator = [];

如何为已声明类型的属性分配一个空数组。

3 个答案:

答案 0 :(得分:2)

EmiCalculator是一个对象,[]是一个数组。您可能需要一个EmiCalculator数组,可以将其写为EmiCalculator[]Array<EmiCalculator>

export interface EmiCalculator {
    emi: number;
    months: number;
    position: number;
    principal: number;
    roi: number;
}
const emiResults: EmiCalculator[] = [];

Playground Link

答案 1 :(得分:1)

您将数组分配给对象。

接口本质上定义了对象的结构,因此您不能将数组分配给对象。

您可能正在寻找的是

emiResults: Array<EmiCalculator> = [];

答案 2 :(得分:-1)

写作时

emiResults: EmiCalculator = [];

您要为变量emiResults分配一个空数组,该变量的类型定义为EmiCalculator

接口定义对象的结构。因此emiResults的类型是object。但是您要分配一个数组。

您可能要执行以下任一操作。

let emiResults: EmiCalculator[] = [];

或者您可以使用Typescript通用语法,

let emiResults: Array<EmiCalculator> = [];