TypeScript中如何基于函数参数使用变量?如何简化重复条件代码?
TypeScript问题解答
一、根据函数参数使用变量
函数内部可直接通过参数名访问并使用参数。若需根据参数的值/类型匹配不同变量,推荐两种方式:
- 条件分支:通过
if/else或switch根据参数值选择对应变量 - 对象映射:将参数值作为键,对应变量作为值存入对象,直接通过键取值
示例代码:
// 假设已有varA、varB、varC三个变量 function process(type: 'a' | 'b' | 'c') { // 方式1:条件分支 let target; if (type === 'a') target = varA; else if (type === 'b') target = varB; else target = varC; // 方式2:对象映射(更简洁) const varMap = { a: varA, b: varB, c: varC }; const target = varMap[type]; }
二、简化重复的if语句代码
针对多个if内重复的三行代码,分场景处理:
场景1:多个条件触发相同逻辑
如果三个if的条件是独立判断(无需互斥),直接把重复逻辑抽成函数:
// 封装重复逻辑 function commonLogic() { line1(); line2(); line3(); } // 调用简化 if (cond1) commonLogic(); if (cond2) commonLogic(); if (cond3) commonLogic();
场景2:不同条件对应不同变量,但后续逻辑相同
如果每个if先赋值不同变量,再执行相同三行,结合对象映射统一处理:
// 假设参数为type,对应不同变量 const varMap = { cond1: varX, cond2: varY, cond3: varZ }; const targetVar = varMap[type]; // 直接执行重复逻辑 line1(targetVar); line2(targetVar); line3(targetVar);
场景3:条件可合并
如果三个条件是“或”关系,直接合并条件:
if (cond1 || cond2 || cond3) { line1(); line2(); line3(); }
内容的提问来源于stack exchange,提问作者Yatharth Nigam
相关产品推荐
相关产品推荐

