【问题标题】:Multiple return type showing error in Angular 11Angular 11 中显示错误的多种返回类型
【发布时间】:2021-05-09 07:51:28
【问题描述】:

我有一个 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;
                }
            }));
    }

但它显示以下错误:

键入'可观察的' 不可分配给类型 “可观察”。 键入'字符串 | AccountInfo' 不可分配给类型 'AccountInfo'。 类型 'string' 不能分配给类型 'AccountInfo'。

【问题讨论】:

    标签: angular angular-services


    【解决方案1】:

    我认为您的返回类型是错误的/输入错误。应该是:

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

    【讨论】:

    • 调用该方法后如何转换角度组件中的返回类型?我怎么知道从服务中返回了哪些东西?
    • 你不能。你可以做的是在你需要类型的地方输入检查结果——例如:if(typeof res === 'string').
    猜你喜欢
    • 1970-01-01
    • 2016-09-09
    • 2021-04-13
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    相关资源
    最近更新 更多