不能将undefined或null转换为对象类型



我写了一个管道,但是当我使用管道时给出了一个错误

<mat-tab *ngFor="let officer of companies?.officers | valueArray" label="{{officer.name}}">

TS

import {Pipe, PipeTransform} from '@angular/core';
@Pipe({
name: 'valueArray',
})
export class ValueArrayPipe implements PipeTransform {
transform(objects: any = []): any {
return Object?.values(objects);
}
}

使用null-coalescing(??)操作符,如果是nullundefined,则使用默认值

为函数参数设置默认值只有在没有向函数传递参数时才有效,所以这应该是为什么默认的[]值不起作用。

...
transform(objects: any = []): any {
return Object.values(objects ?? {});
...

尝试考虑这样一个事实,即转换方法的输入参数也可以是nullundefined:

@Pipe({
name: 'valueArray',
})
export class ValueArrayPipe implements PipeTransform {
transform(objects: any = []): any {
if (!objects) {
return null; // or [], or undefined
}
return Object.values(objects);
}
}

最新更新