最近写项目的时候发现了一些问题实在是受不了了,今天分享出来问一下各位大神有没有解决方案!
主要的问题:
当使用typescript在函数内部使用uni自带API的时候会出现的问题,比如说一下有一个登录页面需要调用uni.getUserInfo()函数获取用户信息做进一步操作(这里假定已经拥有相应的权限了)
login(){ uni.getUserInfo().then(res=>{}) }
像上面这样写的代码是有问题的,看了一下类型声明文件,发现getUserInfo()这个函数本身就被定义为 void 返回类型,这样就无法使用Promise了,各位大佬有没有什么办法?目前只能
let _uni:any = uni _uni.getUserInfo().then(res=>{})
这样写让重新赋值一个任意类型的_uni才行,但是这样写又太麻烦了!各位大佬有没有什么其他的方式解决此问题!
这样的话相当于许多API的Promise写法都无法使用了,只能通过传递回调函数的方式进行获取数据了
如果提供的方法是直接该官方的 类型声明文件还是别提了,这也太那啥了
3 个回复
勇哥萌萌哒
declare global {
const uni:any
}
7***@qq.com
你搞错了吧,这个本来就不是promise方法,它是有回调的。 uni.getUserInfo({
success: () => {}
})
程序小仲
promise化的接口确实有这个问题
2022-12-09 15:30
1***@qq.com
请问有解决方法吗