lonhongg

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

  •  
  •   lonhongg · Mar 21, 2021 · 1638 views
    This topic created in 1881 days ago, the information mentioned may be changed or developed.

    如下图,有个 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 replies    2021-04-10 20:12:50 +08:00
    okampfer
        1
    okampfer  
       Apr 10, 2021   ❤️ 1
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2594 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 100ms · UTC 16:01 · PVG 00:01 · LAX 09:01 · JFK 12:01
    ♥ Do have faith in what you're doing.