3
关注
1589
浏览

typescript generic type guard

查看全部 2 个回答

夏秋先生 未验证用户 用户来自于: 广东省
2020-09-16 14:22

有多个问题,在这里:

  1. isC功能需要Foo作为一个类型参数。这意味着它需要声明如下:

    private isC(... 
    
  2. isC返回类型定义不匹配其输入参数。返回类型声明isC返回true,当其参数d类型C[],但输入类型被限制为Foo[]C(它们都不是C[])。

    此申报工作:

    private isC<Foo>(d: Foo[] | C<Foo>[]): d is C<Foo>[] { ... 
    
  3. (>)d[0]不是有效的类型转换。试试这个,而是:

    return (d as C[])[0].key !== undefined 
    

也看到这个playground with compiling example。

关于作者

问题动态

发布时间
2020-09-15 15:51
更新时间
2022-09-15 16:01
关注人数
3 人关注
个人工作笔记 Powered BY WeCenter V4.1.0 © 2024 粤ICP备2020123311号