我有以下接口(interface):
interface orderItem {
symbol: string,
side: string,
price: number
quantity: number
}
我想在我的构造函数中创建一个由“orderItems”组成的数组“orders”。
但是, orders : [orderItem] 似乎并不能解决问题。有谁知道我该如何继续?
这是我在构造函数中尝试做的事情:
this.state = {
orders: orderItem []
}
最佳答案
由于您正在执行对象文字,因此冒号用于将键与值分开(即,它具有其正常的 javascript 含义,而不是其 typescript 含义)。因此,尝试按照您的方式设置类型会导致错误。
有几种方法可以做你想做的事。您可以使用 as
关键字设置类型:
this.state = {
orders: undefined as orderItem[]
};
或者空数组:
this.state = {
orders: [] as orderItem[]
};
或者您可以提前创建一些东西,然后将其插入到对象中:
let myOrders: orderItem[] = [];
this.state = {
orders: myOrders
};
或者您可以为状态创建一个单独的接口(interface)并使用它:
interface myState {
orders: orderItem[]
}
class myClass {
private state: myState;
constructor () {
this.state = {
orders: undefined
}
}
}
关于javascript - 如何创建自定义类型数组 typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47756537/