3***@qq.com
3***@qq.com
  • 发布:2025-11-17 20:49
  • 更新:2025-11-18 09:44
  • 阅读:16

uts的数据类型转换报错问题 RequestSuccess cannot be cast to IRootType

分类:HBuilderX

初次接触uniappX的uts强类型语法,在类型转换上面遇到很多问题,以下是我

页面A:https.uts
通用的api远程调用的公共方法

const BASE_URL: string = "http://0.0.0.0/"     
function request(url: string, data: any = {}, method: string = 'GET'): Promise<any> {  
    return new Promise((resolve, reject) => {  
        uni.request({  
            url: BASE_URL + url,  
            data: data,  
            method: method,  
            success: (res) => {  
                resolve(res)  
            },  
            fail: (err: any) => {  
                reject(err)  
            }  
        })  
    })  
}  

export function get(url: string, data: any = {}): Promise<any> {  
    return request(url, data, 'GET')  
}  

export function post(url: string, data: any = {}): Promise<any> {  
    return request(url, data, 'POST')  
}

页面B:userApi.uts
用户模块的api方法(引入https.uts)

import { get, post } from './https.uts'  

type Data = {  
    member_id: number;  
    username: string;  
    password: string;  
    balance: string;  
    gender: string;  
    reg_time: string;  
}  
type IRootType = {  
    code: number;  
    msg: string;  
    data: Data[]  
}  

export class UserApi {  
    static async getAllUsers():Promise<IRootType>{  
        let res = await get('member/getall');  
        let result = res as IRootType  
        console.log(result.msg)  
        return result  
    }  
}

运行报错内容为:
error: java.lang.ClassCastException: uts.sdk.modules.DCloudUniNetwork.RequestSuccess cannot be cast to IRootType‌
意思是无法将RequestSuccess 转换为自定义类型IRootType类型。

经过分析:页面B的 这段代码是可以获取到数据的

let res = await get('member/getall'); 

获取到的内容如下:

20:46:52.398 ‍[⁠uts.sdk.modules.DCloudUniNetwork.RequestSuccess⁠]‍ {cookies: ‍[Array]‍ [ ⁠...⁠ ], data: {⁠...⁠}, header: {⁠...⁠}, statusCode: 200} at api/userApi.uts:23

所以请问各位老师,这种RequestSuccess 到底如何才能转换成IRootType类型呢?

2025-11-17 20:49 负责人:无 分享
已邀请:
DCloud_Android_DQQ

DCloud_Android_DQQ

你的用法不对,具体参考这个示例:https://gitcode.com/dcloud/hello-uni-app-x/blob/alpha/pages/API/request/requestTask.uvue

要回复问题请先登录注册