我可以在if语句中以某种方式使用解构吗?

时间:2017-12-10 22:57:11

标签: javascript if-statement ecmascript-6 destructuring

我有办法做这样的事吗?

if({color, size, shape} = this.props){
  console.log('Received all props!');
} else {
  console.log('There are some missing props');
}

我想知道我是否通过Component的道具收到了所有需要的数据, 如果没有,则抛出错误。

用于创建可重用的组件。

1 个答案:

答案 0 :(得分:4)

您可以使用默认值:

-Encoding <encodingName>

要使用function missing(prop) { throw new TypeError(`there is a missing ${prop} property`); } … try { const { color = missing("color"), size = missing("size"), shape = missing("shape"), } = this.props; // use color, size, shape here console.log("Received all props!"); } catch(err) { console.log(err.message); } 语句,不管是否存在所有属性,都不能使用解构来生成布尔值。而是做一些平常的事情

if

(或者更好的是,检查您期望的值的类型)