首页 > 解决方案 > 在对象内联定义属性

问题描述

我现在有这段代码,我想知道是否有办法做到这一点:

export const defaultArrayType = {
  'string': defaultString,
  'boolean': defaultBoolean,
  'number': defaultNumber,
  'object': defaultObject
};

Object.defineProperty(defaultArrayType, 'undefined', {
  get() {
    throw new Error('Array cannot contain an <undefined> element.');
  }
});

Object.defineProperty(defaultArrayType, 'symbol', {
  get() {
    throw new Error('Array cannot contain a <Symbol> element.');
  }
});

我想知道是否有办法内联执行此操作,如下所示:

export const defaultArrayType = {
  'string': defaultString,
  'boolean': defaultBoolean,
  'number': defaultNumber,
  'object': defaultObject,
  'undefined': definePropertySomethingSomething(), // << ?
  'symbol': definePropertySomethingSomething()  // << ?
};

标签: javascriptnode.js

解决方案


这个怎么样:

export const defaultArrayType = {
  'string': defaultString,
  'boolean': defaultBoolean,
  'number': defaultNumber,
  'object': defaultObject,
   get 'undefined'() {throw new Error('Array cannot contain an <undefined> element.');},
   get 'symbol'() {throw new Error('Array cannot contain a <Symbol> element.');}
};

推荐阅读