打字稿中未定义的不可分配问题
undefined not assignable issue in Typescript
我有一个接口员工:
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 函数来 return 数组的最终值。我该如何解决这个问题?
谢谢
emp.data?
中的 ?
表示 data
是可选的,可能不存在于 emp
中,它告诉打字稿不要通过链式函数,即 map
.所以你的赋值可以returnundefined
或者Employee[]
,不能赋值给allEmployees
.
因为emp.data?
也可能returnsvoid 0
。这就是为什么您不必使用 proposal-optional-chaining
,只需像下面这样检查:
allEmployees = emp.data ? emp.data.map((employee) => {
return { firstName: employee.firstName, lastName: employee.lastName }
}) : [];
我有一个接口员工:
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 函数来 return 数组的最终值。我该如何解决这个问题?
谢谢
emp.data?
中的 ?
表示 data
是可选的,可能不存在于 emp
中,它告诉打字稿不要通过链式函数,即 map
.所以你的赋值可以returnundefined
或者Employee[]
,不能赋值给allEmployees
.
因为emp.data?
也可能returnsvoid 0
。这就是为什么您不必使用 proposal-optional-chaining
,只需像下面这样检查:
allEmployees = emp.data ? emp.data.map((employee) => {
return { firstName: employee.firstName, lastName: employee.lastName }
}) : [];