i***@iifly.cn
i***@iifly.cn
  • 发布:2021-01-14 22:14
  • 更新:2021-01-14 22:16
  • 阅读:758

【报Bug】@dcloudio/types 中,uni.d.ts 里的 MapContext.moveToLocation 入参错误

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows10

第三方开发者工具版本号: 1.03.2012120

基础库版本号: 2.9.4

项目创建方式: CLI

CLI版本号: 3.1.3

操作步骤:

@dcloudio/types/uni-app/uni.d.ts 第 4492 行左右:

    interface MapContext {  
        /**  
         * 获取当前地图中心的经纬度,返回的是 gcj02 坐标系,可以用于 uni.openLocation  
         */  
        getCenterLocation(options: MapContextGetCenterLocationOptions): void;  
        /**  
         * 将地图中心移动到当前定位点,需要配合map组件的show-location使用  
         */  
        moveToLocation(): void;  
        /**  
         * 平移marker,带动画  
         */  
        translateMarker(options: MapContextTranslateMarkerOptions): void;  
        /**  
         * 缩放视野展示所有经纬度  
         */  
        includePoints(options: MapContextIncludePointsOptions): void;  
        /**  
         * 获取当前地图的视野范围  
         */  
        getRegion(options: MapContextGetRegionOptions): void;  
        /**  
         * 获取当前地图的缩放级别  
         */  
        getScale(options: MapContextGetScaleOptions): void;  
        /**  
         * 获取原生地图对象 plus.maps.Map  
         */  
        $getAppMap(): any;  
    }  

预期结果:

应有对应的 OBJCET types

实际结果:

moveToLocation(): void;
没有入参的 types

bug描述:

根据官网“地图组件控制”(https://uniapp.dcloud.io/api/location/map?id=createmapcontext),moveToLocation 有如下参数:

moveToLocation 的 OBJECT 参数列表
参数 类型 必填 说明
longitude Number 否 经度 ,App 2.6.8、H5、仅微信小程序 2.8.0+ 支持
latitude Number 否 纬度 ,App 2.6.8、H5、仅微信小程序 2.8.0+ 支持
success Function 否 接口调用成功的回调函数 ,res = { longitude: "经度", latitude: "纬度"}
fail Function 否 接口调用失败的回调函数
complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)

而在 @dcloudio/types/uni-app/uni.d.ts 第 4492 行,MapContext.moveToLocation 是这样的:

moveToLocation(): void;

因此在 ts 开发中使用含参的 moveToLocation 就会报 TS2554 错误。

2021-01-14 22:14 负责人:无 分享
已邀请:
i***@iifly.cn

i***@iifly.cn (作者)

TS2554: Expected 0 arguments, but got 1.       
    86 |   
    87 |   const handleTestPosition = () => {  
  > 88 |     mapContent.moveToLocation({       
       |                               ^       
  > 89 |       longitude: 117.111806,  
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  > 90 |       latitude: 39.065677,  
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
  > 91 |     });  
       | ^^^^^^  
    92 |   };  
    93 |   
    94 |   return {

该问题目前已经被锁定, 无法添加新回复