【发布时间】:2020-07-29 15:46:54
【问题描述】:
我有一个接口Employee:
export interface Employee {
firstName: string;
lastName: string;
}
我正在尝试将类型 Employee 的元素推入一个数组,如下所示:
let allEmployees: Employee[] = [];
allEmployees = emp.data?.map((employee) => {
return { firstName: employee.firstName, lastName: employee.lastName }
});
我收到以下打字稿编译时错误:
type 'undefined' is not assignable to type 'Employee[]'
我使用 .map 函数来返回数组的最终值。我该如何解决这个问题?
谢谢
【问题讨论】:
-
请考虑编辑问题中的代码以构成一个minimal reproducible example,该minimal reproducible example 可以放入像The TS Playground 这样的独立IDE 中,以便其他人可以自己查看问题。
emp的类型在这里很重要。我假设它的data属性本身可能是undefined,因此可选的链接运算符emp.data?.map()可能会将allEmployees设置为undefined,而无需运行map()。另外,我没有看到你试图推动任何元素。相反,您正在尝试重新分配allEmployees。你想试试push()吗? -
推送方法确实有效。但我想重用 .map 函数。
标签: javascript typescript interface