lqzhgood 最近的时间轴更新
lqzhgood

lqzhgood

V2EX 第 82004 号会员,加入于 2014-11-17 11:10:55 +08:00
今日活跃度排名 7908
[求助] 函数中使用泛型缩小参数类型
TypeScript  •  lqzhgood  •  10 天前  •  最后回复来自 chnwillliu
8
百度挂了?
全球工单系统  •  lqzhgood  •  44 天前
脏话: QQ 邮箱把我的互联网账号一锅端了
  •  2   
    全球工单系统  •  lqzhgood  •  67 天前  •  最后回复来自 H97794
    75
    求解 vscode 配置全局 Eslint 的正确方式
    JavaScript  •  lqzhgood  •  134 天前  •  最后回复来自 Opportunity
    2
    有办法把软件窗口挂在桌面吗?
    Windows  •  lqzhgood  •  147 天前  •  最后回复来自 mainjzb
    32
    使用 Win 任务栏做快捷入口(收藏夹)
    分享发现  •  lqzhgood  •  192 天前  •  最后回复来自 lqzhgood
    3
    收到了 element-ui 社区的礼物
  •  1   
    分享发现  •  lqzhgood  •  202 天前  •  最后回复来自 xiaoriri666
    2
    B 站是 85° 灰
    分享发现  •  lqzhgood  •  294 天前  •  最后回复来自 Marian
    12
    lodash some 方法性能为什么比 js 原生方法 还高?
  •  2   
    JavaScript  •  lqzhgood  •  2022-08-02 16:46:53 PM  •  最后回复来自 lujiaosama
    27
    lqzhgood 最近回复了
    我想要一个简单计算器 1+2x3 = 9 的那种~
    AppleStore App 都打不开,你们在哪进的?
    8 天前
    回复了 tiger76 创建的主题 程序员 大家的 Edge 同步功能正常吗?
    不正常 也不报错。 有时候需要注销重来就好了……
    10 天前
    回复了 n18255447846 创建的主题 分享发现 Bun 1.0 发布,前端老哥们都来说说
    可以先用来跑单位测试吧~
    10 天前
    回复了 lqzhgood 创建的主题 TypeScript [求助] 函数中使用泛型缩小参数类型
    @chnwillliu #5

    我不太明白第二点~
    请教第二点的意思是 `t extends TAP_TYPE` !== `t: TAP_TYPE` 么?
    对于 TAP_TYPE 是一个 enum 类型的情况下,上述应该是相等的吧? 我好像找不出反例
    如果从 机顶盒的通讯 是个黑盒且变化的角度考虑~

    主路由单 wan 接外网,IPTV 接入主路由 lan 口,也可以让机顶盒插任意网口看电视,相当于
    机顶盒 ---> 主路由-交换机 ---> 光猫 IPTV

    这样只要解决 主路由-交换机 存在两个 DHCP 的问题。
    如果主路由通过 ARP MAC 绑定家里设备 IP ,关闭 DHCP 对其他设备的分配,就能让机顶盒获取到 IPTV DHCP

    这样只要麻烦一次(绑定家里全部设备 IP ),但是可以保证机顶盒不会出问题(没有 NAT ,相当于交换机直连了)
    openwrt DMZ 你试试这样设置可以不?
    https://smms.app/image/JwNSmIscl4C3jb2

    不过我不知道源区域 你的 wan1 和 wan2 能不能分开选择
    看起来 wan2 --DMZ--> 机顶盒 可以完全解决端口问题~ 免得机顶盒还有什么奇怪的交互~
    15 天前
    回复了 lqzhgood 创建的主题 TypeScript [求助] 函数中使用泛型缩小参数类型
    @Opportunity #1
    我理解给参数 v TapTypeMap[T] 类型就是让 ts 知道 “一一对应的关系”

    switch 外层的 v 类型是 TAP_LOCAL | TAP_MAP 没错
    但是通过 switch 缩小 t 的范围,关联到 TapTypeMap[T] 从而缩小 v 的范围我觉得也没问题吧~

    后来我想通过函数重载的方式去实现也一样报错了~

    ```ts
    function test(t: TAP_TYPE.LOCAL, v: TAP_LOCAL);
    function test(t: TAP_TYPE.MAP, v: TAP_MAP);
    function test(t: TAP_TYPE, v: TAP_LOCAL | TAP_MAP) {
    switch (t) {
    case TAP_TYPE.LOCAL:
    return v.a; //报错
    case TAP_TYPE.MAP:
    return v.b; //报错
    }
    }
    ```

    顺着重载的思路搜到这个 2020 年的帖子 https://www.zhihu.com/question/402139008
    问题类似,也没解决~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2673 人在线   最高记录 5930   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:28 · PVG 22:28 · LAX 07:28 · JFK 10:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.