如何将值添加到agencyList[0].itemName?

export class SelectedItem {
 id: number;
 itemName: string;
 isChecked: boolean;
}

agencyList: SelectedItem[] = [];

我正在try agencyList[0].itemName = 'agency1';,但收到错误:Cannot set properties of undefined (setting 'itemName')

推荐答案

您需要首先使用SelectedItem的实例来初始化agencyList[0],如下所示

agencyList[0] = new SelectedItem();
agencyList[0].itemName = "agency1";

假设您只想在项目尚未初始化的情况下执行此操作:

if (!agencyList[0]) {
    agencyList[0] = new SelectedItem();
}
agencyList[0].itemName = "agency1";

您可以使用nullish coalescing assignment将其压缩为一行代码:

(agencyList[0] ??= new SelectedItem()).itemName = 'agency1'

Playground link to code

Typescript相关问答推荐

泛型函数即使没有提供类型

如何使函数接受类型脚本中具有正确类型的链接修饰符数组

对扩展某种类型的属性子集进行操作的函数

对未到达受保护路由的路由环境做出react

ANGLE独立组件布线错误:没有ActivatedRouting提供程序

如何使用Geojson模块和@Types/Geojson类型解析TypeScrip中的GeoJSON?

Angular:ngx-echart 5.2.2与Angular 9集成错误:NG 8002:无法绑定到选项,因为它不是div的已知属性'

缩小对象具有某一类型的任意字段的范围

推断集合访问器类型

如何避免多个类型参数重复?

在打印脚本中将对象类型转换为数组

有没有一种方法可以提升对象的泛型级别,而对象的值是泛型函数?

Route.ts文件中未导出HTTP方法

在Vite中将SVG导入为ReactComponent-不明确的间接导出:ReactComponent

Typescript泛型调用对象';s方法

为什么TS条件返回要求不明确的强制转换而不是精确的强制转换?

是否使用类型将方法动态添加到类?

如何在由函数参数推断的记录类型中具有多个对象字段类型

元素隐式具有any类型,因为string类型的表达式不能用于索引类型{Categories: Element;管理员:元素; }'

为什么我们在条件语句中使用方括号[]?