如何在解构赋值语法中使用特殊字符(如连字符)?
How to use special characters (like hyphen) in destructuring assignment syntax?
我很好奇为什么这看起来不可能:
const {a, b, 'special-one'} = { a:1, b:2, 'special-one': 3 };
// output => missing : after property id
是否有可能在未来的 ES 版本中找到该语法?
谢谢你的灯:)
special-one
不能是变量名。所以你需要另一个名字,比如 specialOne
。在新变量名的键名后使用 :
。
const {a, b, 'special-one':specialOne} = { a:1, b:2, 'special-one': 3 };
console.log(specialOne)
在上面的例子中,你有一个纯字符串作为键名。但是如果有一个表达式,你将需要使用 []
let keyName = 'special-one'
const {a, b, [keyName]:specialOne} = { a:1, b:2, 'special-one': 3 };
console.log(specialOne)
在解构语句中重命名变量,变量名称中不能有连字符。您可以使用以下语法重命名,请参阅 MDN: Assigning to new variable names
A property can be unpacked from an object and assigned to a variable
with a different name than the object property.
const {
a,
b,
'special-one': specialOne
} = {
a: 1,
b: 2,
'special-one': 3
};
console.log(specialOne);
我很好奇为什么这看起来不可能:
const {a, b, 'special-one'} = { a:1, b:2, 'special-one': 3 };
// output => missing : after property id
是否有可能在未来的 ES 版本中找到该语法?
谢谢你的灯:)
special-one
不能是变量名。所以你需要另一个名字,比如 specialOne
。在新变量名的键名后使用 :
。
const {a, b, 'special-one':specialOne} = { a:1, b:2, 'special-one': 3 };
console.log(specialOne)
在上面的例子中,你有一个纯字符串作为键名。但是如果有一个表达式,你将需要使用 []
let keyName = 'special-one'
const {a, b, [keyName]:specialOne} = { a:1, b:2, 'special-one': 3 };
console.log(specialOne)
在解构语句中重命名变量,变量名称中不能有连字符。您可以使用以下语法重命名,请参阅 MDN: Assigning to new variable names
A property can be unpacked from an object and assigned to a variable with a different name than the object property.
const {
a,
b,
'special-one': specialOne
} = {
a: 1,
b: 2,
'special-one': 3
};
console.log(specialOne);