小编典典

如何在打字稿中声明对象数组?

reactjs

我想指定一个将对象数组作为参数的函数,但我没有为该对象定义特定类型(一种“匿名类型”)

bagTotal = (products) => {
 // function does stuff
}

我知道我可以这样做:

bagTotal = (products: any[]) => {
 // function does stuff
}

但这比我想要的要宽松一些:严格要求打字稿。

products是一组外观相同的对象;所有对象都有名称,价格和说明。

我该怎么宣布呢?

我想做类似的事情

bagTotal = (products: [{name: string, price: number, description: string}]) => {
 // function does stuff
}

但这是不对的。我该如何声明呢?


阅读 246

收藏
2020-07-22

共1个答案

小编典典

您快到了,括号的位置是错误的:

{name: string, price: number, description: string}[]

您拥有的方式并不完全是错误的,但是还意味着其他的东西:这意味着一个数组中只有一个这种类型的项。


我还建议将其提取到接口中,这将使类型可重用,并且使内容更易于阅读:

interface Product {
    name: string;
    price: number;
    description: string;
}

const products: Product[];
2020-07-22