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

2021-03-21 11:59:04 +08:00
 lonhongg

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

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


代码截图

源代码

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);
}
1042 次点击
所在节点    TypeScript
1 条回复
okampfer
2021-04-10 20:12:50 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/763618

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX