【发布时间】:2020-09-24 15:00:23
【问题描述】:
在 ES6/ES7 中已经有很多 cool features 用于定义 Javascript 对象。但是,以下模式在 Javascript 中很常见:
const obj = {
requiredKey1: ...,
requiredKey2: ...
};
if (someCondition) {
obj.optionalKey1 = ...;
}
有没有一种方法可以同时使用可选键和必需键同时定义对象?
【问题讨论】:
-
为什么不直接使用三元呢?
optionKey1: someCondition ? value : undefined? -
@FelixKling 我认为这在很大程度上是理论上的区别,因为在节点/浏览器环境中没有实现“完整”的 ES6 或 ES7 标准,而且大多数人都在使用转译器。
-
好吧,它定义了答案的范围。我们不知道你在用什么。此外,我不希望人们误用 ES7 一词来表示实验性功能。
-
@FelixKling 我在询问 Ecmascript 的任何标准;显然现有的支持标准更好。如果这可以通过实验性功能来完成,好吧。如果可以用 ES6 或 ES7 完成,那就更好了。如果 ES5 有可能,那就太棒了!
-
我希望看到类似
{ key?: optionalValue }或属性简写:{ optionalValue? }
标签: javascript object ecmascript-6 ecmascript-2016 ecmascript-next