破坏性任务中的道具可以原地转换吗?

tjf*_*ker 6 javascript syntax destructuring variable-assignment ecmascript-6

这有效...

const { prop1:val1, prop2:val2 ) = req.query
val1 = val1.toLowerCase()
Run Code Online (Sandbox Code Playgroud)

虽然,我更倾向于做类似的事情

const { prop1.toLowerCase():val1, prop2:val2 } = req.query
Run Code Online (Sandbox Code Playgroud)

要么

const { prop1:val1.toLowerCase(), prop2:val2 } = req.query
Run Code Online (Sandbox Code Playgroud)

两者都不起作用。是否有与此类似的语法,还是必须在破坏性分配之外执行操作?

Ber*_*rgi 5

不,这是不可能的。解构赋值仅进行赋值,不会对值进行任意转换。(设置器是一个例外,但它们只会使事情变得复杂)。

我建议写

const { prop1, prop2:val2 ) = req.query;
const val1 = prop1.toLowerCase();
Run Code Online (Sandbox Code Playgroud)

或者,在一份声明中:

const { prop1, prop2:val2 ) = req.query, val1 = prop1.toLowerCase();
Run Code Online (Sandbox Code Playgroud)