I'm facing this error in my code when using strict mode and I'm not managing it.
"message": "Type 'MyType<string>[] | undefined' must have a '[Symbol.iterator]()' method
It is happenning in this line of code:
const [optionAll, ...options] = await service.getLineOfBusiness().toPromise();
this service method returns an observable of a list of MyType:
public getLineOfBusiness(): Observable<MyType<string>[]>
This MyType is quite simple interface:
export interface MyType<T = unknown> {
key: string;
value: T;
extra?: string;
}
How can I solve it?
CodePudding user response:
MyType<string>[] can be destructured with array-like syntax but undefined cannot.
If you are sure that getLineOfBusiness() will always return an array in this specific usage (and not undefined), you could add a non-null assertion (!) to the awaited expression to suppress the error:
const [optionAll, ...options] = (await service.getLineOfBusiness().toPromise())!;
