TypeScript中如何访问对象数组内的指定属性(如kameraName)
解决TypeScript中对象数组属性访问问题
首先,你当前用object[]作为数组类型的话,TypeScript无法推断出数组内对象的具体属性,直接访问kameraName会出现类型错误。建议先定义一个明确的类型或接口来约束数组元素:
// 定义接口描述数组元素的结构 interface ExtentItem { id: number; kameraName: string; } // 将数组类型改为ExtentItem[] public extentSource: ExtentItem[]; this.extentSource = []; // 无需new Array<ExtentItem>(),直接初始化空数组即可 this.extentSource.push({ id: md.deviceId, kameraName: md.label, });
访问单个元素的kameraName属性
如果要访问数组中某个位置元素的kameraName,直接通过索引加属性名即可:
// 访问第一个元素的kameraName const firstKameraName = this.extentSource[0].kameraName; console.log(firstKameraName); // 输出"canon"
查找kameraName为"sony"的元素
如果要筛选出kameraName值为"sony"的对象,使用数组的find方法:
const sonyItem = this.extentSource.find(item => item.kameraName === "sony"); // 若需忽略大小写,可改为item.kameraName.toLowerCase() === "sony" if (sonyItem) { console.log(sonyItem.kameraName); // 找到后输出"sony" } else { console.log("未找到kameraName为sony的元素"); }
内容的提问来源于stack exchange,提问作者Laure
相关产品推荐
相关产品推荐

