uni-app uni.navigateBack 在 @dcloudio/types 中的参数类型 NavigateBackOptions 缺少回调函数

uni-app uni.navigateBack 在 @dcloudio/types 中的参数类型 NavigateBackOptions 缺少回调函数

测试过的手机:

全部

操作步骤:

预期结果:

实际结果:

bug描述:

[@dcloudio](/user/dcloudio)/types中,uni.navigateBack的参数类型NavigateBackOptions缺少回调函数successfailcomplete的类型,导致了在ts中调用时,await返回的类型会是never,但是实际上uni.navigateBack是有回调函数并且会正常执行,并且其他的navigate方法在[@dcloudio](/user/dcloudio)/types中都是有回调函数类型的,希望能够补上

信息项
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 11
手机系统 全部
手机厂商 华为
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 CLI
CLI版本号 4.5

更多关于uni-app uni.navigateBack 在 @dcloudio/types 中的参数类型 NavigateBackOptions 缺少回调函数的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

更新至 @dcloudio/types@2.5.15

更多关于uni-app uni.navigateBack 在 @dcloudio/types 中的参数类型 NavigateBackOptions 缺少回调函数的实战教程也可以访问 https://www.itying.com/category-93-b0.html


@dcloudio/types 中,NavigateBackOptions 确实缺少 successfailcomplete 回调函数的类型定义。这是一个已知的类型定义缺陷。

uni.navigateBack 方法实际支持完整的回调函数,与其他导航方法(如 navigateTo)行为一致。由于类型定义不完整,在 TypeScript 项目中调用时,await uni.navigateBack() 会返回 never 类型,导致类型检查错误。

临时解决方案:

  1. 类型断言:在调用时手动指定返回类型。

    await (uni.navigateBack() as Promise<any>);
    
  2. 扩展类型定义:在项目中添加自定义类型声明。

    // global.d.ts 或类似文件
    declare namespace uni {
        interface NavigateBackOptions {
            delta?: number;
            success?: () => void;
            fail?: () => void;
            complete?: () => void;
        }
    }
回到顶部