TypeScript AddOrSubtract函数实现问题求助
问题解决:TypeScript函数条件判断错误
你的代码核心问题是把相等比较写成了赋值操作:
if (y = true)里的=是赋值符号,它会把true强制赋值给y,不管你传入的y原本是true还是false,这个表达式的结果永远是true,所以if分支永远执行,返回x+1,这就是传false也得到6的原因。
修正方案
- 替换赋值为比较:用严格相等运算符
===做判断,写成if (y === true) - 更简洁的写法:因为
y本身就是布尔类型,直接判断if (y)即可,逻辑完全一致 - 优化返回类型:不要用
any,明确指定返回number,符合TypeScript类型规范
修正后的代码
function addOrSubtract(x: number, y: boolean): number { if (y) { return x + 1; } else { return x - 1; } } // 测试结果 console.log(addOrSubtract(5, true)); // 6 console.log(addOrSubtract(5, false)); // 4
更简洁的三元运算符写法
如果想让代码更紧凑,可以用三元表达式:
function addOrSubtract(x: number, y: boolean): number { return y ? x + 1 : x - 1; }
内容的提问来源于stack exchange,提问作者Isa
相关产品推荐
相关产品推荐

