多个返回类型在 Angular 11 中显示错误

问题描述

我有一个 Angular 服务。该服务的方法调用 API 并返回一个对象。现在我想修改那个服务功能。我希望如果 API 调用返回对象,则该函数将返回该对象作为可观察对象,但 API 返回 null,则该函数将返回一串消息。这是我的角度代码

getAccountDetailsById(id: number): Observable<AccountInfo> | string {
        return this.service.get<AccountResultInfo>(`${this.apiPATH}accountById/${id}`)
            .pipe(map(user => {
                if (user.Account) {
                    return user.Account;
                } else {
                    return user.Message;
                }
            }));
    }

但它显示以下错误

输入 'Observable' 不可分配到类型 '可观察'。 输入'字符串| AccountInfo' 不可分配到类型 'AccountInfo'。 类型 'string' 不可分配给类型 'AccountInfo'。

解决方法

我认为您的返回类型有误/打错了。应该是:

getAccountDetailsById(id: number): Observable<AccountInfo | string>