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

我这边是可以的,你的 json.data 的 type 是什么呢 |
10
AV1 May 13, 2023
我试了是正常的。
建议提供完整的可复现示例。 |