user5047085
user5047085

Reputation:

Define property on object inline

I have this code right now and I am wondering if there is a way to do this inline:

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.');
  }
});

I am wondering if there is a way to do this inline, something like this:

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

Upvotes: 1

Views: 107

Answers (1)

mindriven
mindriven

Reputation: 143

how about this:

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.');}
};

Upvotes: 1

Related Questions