比如服务器给前端的 json 里面返回了一个 data 结构 json={ data:{ name:hikaru } }
前端定义的 data 结构 type Data={ name:string } const d:Data = json.data 这个时候 d.提示没法出 name ,必须右侧加上 as Data 才会有提示
![]() |
1
jazzg62 142 天前
不应该,重启下 vscode 试试呢
|
2
looking0truth 142 天前
你是不是讲反掉了,json 的 type 你给了吗
|
3
CLMan 142 天前
你服务器返回的是运行时数据,是`any`类型的,你不用`as`转换,你还能干嘛?
服务器返回的数据不是你自己创建的数据,编译器是没法检查的。 |
4
crysislinux 142 天前 via Android
可能你的 tsconfig. json 里的配置认为你这个转换是非法的。你保持左边不变右边 as any 应该也可以
|
5
Danswerme 142 天前
你说的这种一般是要用泛型来实现的,类似这种:
``` const res = await http.get<HomeType>("/home"); ``` 看这个帖子: https://juejin.cn/post/7113475007598034951#heading-9 |
6
Leviathann 142 天前
不是少了一层 data ?
|
7
agdhole 142 天前
用 webstorm
|
![]() |
8
lisongeee 142 天前

我这边是可以的,你的 json.data 的 type 是什么呢 |
![]() |
10
DOLLOR 142 天前
我试了是正常的。
建议提供完整的可复现示例。 |