在对象赋值解构Javascript中使用Colon

Sho*_*cob 5 object destructuring variable-assignment

使用React.js和React Router

import React, { Component } from 'react';

const PrivateRoute = ({ component: Component, ...rest }) => (
  <Route {...rest} render={} />
)
Run Code Online (Sandbox Code Playgroud)

*{ component: Component, ...rest }*

..rest是使用扩展语法但是做了*component: Component*什么

Sum*_*ndu 10

在ES6中,这将为此命名的新变量赋值 foo

let obj = {
  name: 'Some Name',
  age: '42',
  gender: 'coder'
};
let { name: foo, ...rest } = obj;
console.log({foo, rest}) // { foo: 'Some Name', rest: { age: 42, gender: 'coder' } }
//
Run Code Online (Sandbox Code Playgroud)

在这种情况下,name将不会定义

更多信息请访问此链接

  • 为了进一步演示此答案中的解构:在 javascript 中解构的基本方法是编写类似 `let { name } = obj` 的内容,这与 `let name = obj.name` 完全相同。但您也可以选择“重命名”或为要解包的新变量选择一个不同的名称。在此示例中,您会看到类似 `let { name: foo } = obj` 的内容,它与 `let foo = obj.name` 执行完全相同的操作。 (4认同)