如下图,有个 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);
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.