You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 5.5出现Generic parameter 'T' could not be inferred报错原因求解

报错原因
  • withUnsafeThrowingContinuation 是泛型方法,要求所有代码分支都必须调用 continuation 的 resume 系列方法才能完成泛型类型推断。你当前只在 if let user = Amplify.Auth.getCurrentUser() 成立的分支调用了 resume(returning:),没有处理无登录用户的分支,编译器无法确定无用户场景下的返回类型,因此无法推断泛型参数 T。
  • 你在函数内部添加的 do/catch 逻辑捕获了所有错误仅做打印,既没有向外抛出错误,也没有返回符合 AuthUser 类型的返回值,和函数声明的 async throws -> AuthUser 签名不匹配,也会干扰类型推断逻辑。
修复方案

补全所有分支的 continuation 调用,移除冗余的内部错误捕获逻辑即可,修复后代码如下:

// Gets User signed-in
func getUser() async throws -> AuthUser {
    try await withUnsafeThrowingContinuation { continuation in
        if let user = Amplify.Auth.getCurrentUser() {
            continuation.resume(returning: user)
        } else {
            // 可根据业务需要替换为自定义错误类型
            continuation.resume(throwing: NSError(domain: "Auth", code: -1, userInfo: [NSLocalizedDescriptionKey: "无有效登录用户"]))
        }
    }
}

内容的提问来源于stack exchange,提问作者Arturo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:18:02