JavaScriptでオブジェクトの分割代入をするとき変数名を別の名前にする

オブジェクトの分割代入(Destructuring assignment)をするときに、変数名を自分の好きな名前に変更したいと思って調べたら、方法があった。

MDN

developer.mozilla.org

異なる名前を持つ変数への代入

var o = {p: 42, q: true};
var {p: foo, q: bar} = o;
 
console.log(foo); // 42 
console.log(bar); // true  

var { キー名 } = オブジェクトの形式で分割代入するところをvar { キー名: 任意名 } = オブジェクトとすることでOK。

このMDNの例だと

var { p } = o

var { p: foo } = o

としてpをfooに変更している。


なんだか慣れないとオブジェクトのkey: valueの構文もしくは型指定に見えてきてしまうので早く慣れたい。

ESモジュールのimport構文でimport { p as foo } from 'hoge' という構文があるから、asを使ったこのノリでできないのがなんでなんだろうなーという気がしている。深く調べてないのでECMAの仕様決定までの流れをいつか調べたい。