使用 ( value1 || value2) 对值进行分组以进行比较在 JavaScript 或 TypeScript 中是否有效?如果是,为什么不呢?

问题描述 投票:0回答:1

我想知道是否用 || 对值进行分组虽然比较单个变量值在最新的 JavaScript 或 TypeScript 中被认为是有效的,如果不是,有人知道它在某些时候不能成为有效语法糖的原因吗?或者如果允许的话,这个是在哪个版本的JS中添加的,这种快捷方式比较叫什么?

const exampleVar: 'a' | 'b' | 'c' | 'd' = 'a'

// I want to see if example var is 'a' or 'b'
if ( exampleVar === ( 'a' || 'b') ) {
  console.log('Yay!');
} else {
  console.log("Not 'a' or 'b' - Boo!");
}

如果 exampleVar 是“a”或“b”,我希望它返回 true。它在常青浏览器的控制台中工作,所以我认为我的两个最大的问题是在哪里可以安全地使用它以及这个快捷方式叫什么,这样我可以在 CanIUse 之类的东西中检查它的支持。

javascript typescript syntax comparison comparison-operators
1个回答
0
投票

不,这并不像你想象的那样有效。

exampleVar === ( 'a' || 'b')
相当于
exampleVar === 'a'

or
运算符,如果左手值为假,则返回右手值。

最接近您正在寻找的可能是:

if(['a', 'b'].includes(exempleVar)) {
  ...
}
© www.soinside.com 2019 - 2024. All rights reserved.