V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lonhongg
V2EX  ›  TypeScript

请教一个动态赋值方法后传参异常的问题

  •  
  •   lonhongg · 2021-03-21 11:59:04 +08:00 · 1009 次点击
    这是一个创建于 1103 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如下图,有个 finalFn 方法是根据某个参数动态赋值为 fn1 或 fn2,但赋值后调用 finalFn,传参 Ta Tb 都会报错,因为 fiinalFn 参数被推断为never.

    想请教下问题出在哪里,需要如何修改,或者拜托指点下搜索关键字


    代码截图 代码片段.png

    源代码

    type Ta = '1' | '2';
    
    type Tb = '3' | '4';
    
    const fn1 = (val: Ta) => {
      console.log(val);
    };
    
    const fn2 = (val: Tb) => {
      console.log(val);
    };
    function handler (val: string) {
      let finalFn;
      let params: Ta | Tb;
    
      switch (val) {
        case 'A':
          finalFn = fn1;
          params = '1';
          break;
        case 'B':
          finalFn = fn2;
          params = '4';
          break;
        default:
          break;
      }
      finalFn && finalFn(params);
    }
    
    1 条回复    2021-04-10 20:12:50 +08:00
    okampfer
        1
    okampfer  
       2021-04-10 20:12:50 +08:00   ❤️ 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3208 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:34 · PVG 19:34 · LAX 04:34 · JFK 07:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.