You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Patrick Jierald Francisco Juan e13d022e26 | 10 months ago | |
---|---|---|
.. | ||
.github | 10 months ago | |
test | 10 months ago | |
.eslintrc | 10 months ago | |
.nycrc | 10 months ago | |
CHANGELOG.md | 10 months ago | |
LICENSE | 10 months ago | |
README.md | 10 months ago | |
index.d.ts | 10 months ago | |
index.d.ts.map | 10 months ago | |
index.js | 10 months ago | |
package.json | 10 months ago | |
tsconfig.json | 10 months ago |
README.md
define-data-property
Define a data property on an object. Will fall back to assignment in an engine without descriptors.
The three non*
argument can also be passed null
, which will use the existing state if available.
The loose
argument will mean that if you attempt to set a non-normal data property, in an environment without descriptor support, it will fall back to normal assignment.
Usage
var defineDataProperty = require('define-data-property');
var assert = require('assert');
var obj = {};
defineDataProperty(obj, 'key', 'value');
defineDataProperty(
obj,
'key2',
'value',
true, // nonEnumerable, optional
false, // nonWritable, optional
true, // nonConfigurable, optional
false // loose, optional
);
assert.deepEqual(
Object.getOwnPropertyDescriptors(obj),
{
key: {
configurable: true,
enumerable: true,
value: 'value',
writable: true,
},
key2: {
configurable: false,
enumerable: false,
value: 'value',
writable: true,
},
}
);