我想指定一个将对象数组作为参数的函数,但我没有为该对象定义特定类型(一种“匿名类型”)
bagTotal = (products) => { // function does stuff }
我知道我可以这样做:
bagTotal = (products: any[]) => { // function does stuff }
但这比我想要的要宽松一些:严格要求打字稿。
products是一组外观相同的对象;所有对象都有名称,价格和说明。
products
我该怎么宣布呢?
我想做类似的事情
bagTotal = (products: [{name: string, price: number, description: string}]) => { // function does stuff }
但这是不对的。我该如何声明呢?
您快到了,括号的位置是错误的:
{name: string, price: number, description: string}[]
您拥有的方式并不完全是错误的,但是还意味着其他的东西:这意味着一个数组中只有一个这种类型的项。
我还建议将其提取到接口中,这将使类型可重用,并且使内容更易于阅读:
interface Product { name: string; price: number; description: string; } const products: Product[];