岁月x离歌
岁月x离歌
  • 发布:2020-01-02 21:44
  • 更新:2023-04-14 15:59
  • 阅读:1829

使用typescript开发uniapp类型推断问题

分类:uni-app

最近写项目的时候发现了一些问题实在是受不了了,今天分享出来问一下各位大神有没有解决方案!

主要的问题:

当使用typescript在函数内部使用uni自带API的时候会出现的问题,比如说一下有一个登录页面需要调用uni.getUserInfo()函数获取用户信息做进一步操作(这里假定已经拥有相应的权限了)

login(){  
uni.getUserInfo().then(res=>{})  
}

像上面这样写的代码是有问题的,看了一下类型声明文件,发现getUserInfo()这个函数本身就被定义为 void 返回类型,这样就无法使用Promise了,各位大佬有没有什么办法?目前只能

let _uni:any = uni  
_uni.getUserInfo().then(res=>{})

这样写让重新赋值一个任意类型的_uni才行,但是这样写又太麻烦了!各位大佬有没有什么其他的方式解决此问题!
这样的话相当于许多API的Promise写法都无法使用了,只能通过传递回调函数的方式进行获取数据了

如果提供的方法是直接该官方的 类型声明文件还是别提了,这也太那啥了

2020-01-02 21:44 负责人:无 分享
已邀请:
勇哥萌萌哒

勇哥萌萌哒

declare global {
const uni:any
}

7***@qq.com

7***@qq.com

你搞错了吧,这个本来就不是promise方法,它是有回调的。 uni.getUserInfo({
success: () => {}
})

  • 程序小仲

    promise化的接口确实有这个问题

    2022-12-09 15:30

1***@qq.com

1***@qq.com

请问有解决方法吗

要回复问题请先登录注册