为什么 typescript 左边加了类型注解之后不会有 ide 提示,而必须要右边加 as 才行呢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
hikarugo

为什么 typescript 左边加了类型注解之后不会有 ide 提示,而必须要右边加 as 才行呢

  •  
  •   hikarugo 2023 年 5 月 13 日 1898 次点击
    这是一个创建于 1075 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如服务器给前端的 json 里面返回了一个 data 结构 json={ data:{ name:hikaru } }

    前端定义的 data 结构 type Data={ name:string } const d:Data = json.data 这个时候 d.提示没法出 name ,必须右侧加上 as Data 才会有提示

    第 1 条附言    2023 年 5 月 14 日
    @jazzg62
    @crysislinux
    @lisongeee
    @DOLLOR
    @CLMan
    重启 vsc 之后正常了,谢谢大家
    jazzg62
        1
    jazzg62  
       2023 年 5 月 13 日
    不应该,重启下 vscode 试试呢
    looking0truth
        2
    looking0truth  
       2023 年 5 月 13 日
    你是不是讲反掉了,json 的 type 你给了吗
    CLMan
        3
    CLMan  
       2023 年 5 月 13 日
    你服务器返回的是运行时数据,是`any`类型的,你不用`as`转换,你还能干嘛?

    服务器返回的数据不是你自己创建的数据,编译器是没法检查的。
    crysislinux
        4
    crysislinux  
       2023 年 5 月 13 日 via Android
    可能你的 tsconfig. json 里的配置认为你这个转换是非法的。你保持左边不变右边 as any 应该也可以
    Danswerme
        5
    Danswerme  
       2023 年 5 月 13 日
    你说的这种一般是要用泛型来实现的,类似这种:
    ```
    const res = await http.get<HomeType>("/home");
    ```

    看这个帖子: https://juejin.cn/post/7113475007598034951#heading-9
    Leviathann
        6
    Leviathann  
       2023 年 5 月 13 日
    不是少了一层 data ?
    agdhole
        7
    agdhole  
       2023 年 5 月 13 日
    用 webstorm
    lisongeee
        8
    lisongeee  
       2023 年 5 月 13 日
    ![image]( https://github.com/lisonge/vite-plugin-monkey/assets/38517192/1cd0bc31-5c72-4a92-acf1-eb551494652c)

    我这边是可以的,你的 json.data 的 type 是什么呢
    CLMan
        9
    CLMan  
       2023 年 5 月 13 日
    @CLMan 是我记错了,anxios 是泛型 API ,默认是 any ,而 any 是不需要`as`转换的,只有`unknown`才需要。
    AV1
        10
    AV1  
       2023 年 5 月 13 日
    我试了是正常的。
    建议提供完整的可复现示例。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5713 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 65ms UTC 01:54 PVG 09:54 LAX 18:54 JFK 21:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86