我有以下界面:
interface orderItem {
symbol: string,
side: string,
price: number
quantity: number
}
我想在我的构造函数中创建一个由“orderItems”组成的数组“orders”。
然而,订单:[orderItem]似乎没有做到这一点。有谁知道我怎么办?
以下是我在构造函数中尝试做的事情:
this.state = {
orders: orderItem []
}
答案 0 :(得分:4)
由于您正在执行对象文字,因此冒号用于将键与值分开(即,它具有正常的javascript含义,而不是其打字稿含义)。因此,尝试按照您正在进行的方式设置类型会导致错误。
有几种方法可以做你想要的。您可以使用关键字设置类型:
LUIS
或使用空数组:
LUIS
或者您可以提前创建一些内容,然后将其插入到对象中:
as
或者你可以为状态设置一个单独的界面并使用它:
this.state = {
orders: undefined as orderItem[]
};
答案 1 :(得分:1)
你想要的是这个:
this.orders = new Array<orderItem>();
答案 2 :(得分:1)
您需要声明如下:
interface CartState extends Object { orders: OrderItem[] }
class Cart {
private state: CartState;
constructor(orders: OrderItem[]) {
this.state = { orders };
}
}
用于声明数组的Typescript documentation。