Red*_*ron 3 javascript typescript reactjs
我想指定该函数将对象数组作为参数,但是我没有为该对象定义特定类型(某种“匿名类型”)
bagTotal = (products) => {
// function does stuff
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以这样做:
bagTotal = (products: any[]) => {
// function does stuff
}
Run Code Online (Sandbox Code Playgroud)
但这比我想要的要轻松一些:严格限制我的打字稿。
products 是一组外观相同的对象,就像所有对象都有名称,价格,描述一样。
我该怎么宣布呢?
我想做类似的事情
bagTotal = (products: [{name: string, price: number, description: string}]) => {
// function does stuff
}
Run Code Online (Sandbox Code Playgroud)
但这是不对的。我该如何声明?
您快到了,括号的位置是错误的:
{name: string, price: number, description: string}[]
Run Code Online (Sandbox Code Playgroud)
您拥有的方式并不完全是错误的,但是还意味着其他的东西:这意味着一个数组中只有一个这种类型的项。
我还建议将其提取到接口中,这将使类型可重用并且使内容更易于阅读:
interface Product {
name: string;
price: number;
description: string;
}
const products: Product[];
Run Code Online (Sandbox Code Playgroud)
通用数组类型 提供Array<elemType>了一种声明对象数组的简单方法:
bagTotal = (products: Array<{name: string, price: number}>) => {
...
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为您必须声明类“Product”,以便您可以像这样声明一个 Product 数组:
products: Product[];
Run Code Online (Sandbox Code Playgroud)
并将其作为参数传递,如下所示:
bagTotal = (products: Product[]) => {
// function does stuff
}
Run Code Online (Sandbox Code Playgroud)
要拥有该课程,您可以使用以下代码创建一个新的 .ts 文件:
export class Product {
name: String;
price: Number;
description: String;
}
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助!
谢谢你。
| 归档时间: |
|
| 查看次数: |
4481 次 |
| 最近记录: |