无法读取未定义的属性“list_ids”
2017-05-22
55
我是 Typescript 新手,不知道如何解决一个小问题。 我声明了一个新类,然后我想分配从 apiCall 获得的值。但我遇到的问题是:
Cannot read property 'list_ids' of undefined
在我的类中,我初始化了对象,如果我想将其声明为空,则会出现错误。 我该如何解决这个问题?如果我可以从一开始就将其声明为空,然后分配它,我想那就太好了!
在这里我发布了我的类的代码:
export class MyClass {
name: string
op: string
field_id: string
comparsion_values: {
values: [
string
],
list_ids: [number]
field_ids: [
string
],
velocities: [
string
],
prices: [
{
amount: 0
currency: string
}
]
}
}
我将其初始化为:
myObjectClass= new myClass;
当我尝试在某些数组中进行推送时,问题出现了。
非常感谢。
1个回答
问题 1:
根据命名,我假设您打算将
list_ids
、
field_ids
作为数组,但目前它们被类型化为
元组
。
问题 2:
您没有初始化
comparsion_values
属性。您只是在定义属性的类型。
您可以在接口中定义
comparsion_values
的类型(以内联方式定义它没有错,但看起来很乱),并在构造函数中使用空数组初始化它,如下所示:
interface ComparisonValues {
values: Array<string>, // Or string[] would work too
list_ids: Array<number>
field_ids: Array<string>,
velocities: Array<string>,
prices: Array<{
amount: number
currency: string
}>
}
export class MyClass {
name: string
op: string
field_id: string
comparsion_values: ComparisonValues
constructor() {
this.comparsion_values = {
values: [],
list_ids: [],
field_ids: [],
velocities: [],
prices: []
}
}
}
Saravana
2017-05-22