赞
踩
最近在学vue3配合使用ts,遇到一个小问题记录一下。
通常情况下,我在使用封装后的axios调取后端数据是这样编写的:
- ...
- const getVerifyCode = async () => {
- const res = await RequestVerifyCode()
- const { resultCode, resultInfo } = res
- if (resultCode === 1) {
- VerifyCode.value = resultInfo.code
- VerifyData.value = resultInfo.data
- }
- }
- ...
在js文件下,这样是完全没有问题的;但是这里使用的是ts,这样编写,resultCode和resultInfo提示类型错误,那么应该如何解决呢?
这里,我们只要为res添加一个类型就能解决这个问题了,如下:
- interface Respond {
- resultCode: number
- resultInfo: any
- }
-
-
- const getVerifyCode = async () => {
- const res: any = await RequestVerifyCode()
- const { resultCode, resultInfo } = <Respond><any>res
- if (resultCode === 1) {
- VerifyCode.value = resultInfo.code
- VerifyData.value = resultInfo.data
- }
- }
我们在还可以把ts写的泛型写在宁一个文件,这样相同的就可重复使用了;在没时间的情况下,也可直接定义any了事,但这样ts就和js一样了,也就失去意义了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。