which-builtin-type (1.2.1)
Published 2026-02-24 14:08:36 +00:00 by atheaadmin
Installation
registry=npm install which-builtin-type@1.2.1"which-builtin-type": "1.2.1"About this package
which-builtin-type 
What is the type of this builtin JavaScript value? Works cross-realm, without instanceof, and can not be fooled by a constructor property.
Example
var whichBuiltinType = require('which-builtin-type');
var assert = require('assert');
assert.equal(undefined, whichBuiltinType(undefined));
assert.equal(null, whichBuiltinType(null));
assert.equal('Boolean', whichBuiltinType(false));
assert.equal('Boolean', whichBuiltinType(true));
assert.equal('Array', whichBuiltinType([]));
assert.equal('Object', whichBuiltinType({}));
assert.equal('RegExp', whichBuiltinType(/a/g));
assert.equal('RegExp', whichBuiltinType(new RegExp('a', 'g')));
assert.equal('Date', whichBuiltinType(new Date()));
assert.equal('Number', whichBuiltinType(42));
assert.equal('Number', whichBuiltinType(NaN));
assert.equal('Number', whichBuiltinType(Infinity));
assert.equal('Number', whichBuiltinType(new Number(42)));
assert.equal('String', whichBuiltinType('foo'));
assert.equal('String', whichBuiltinType(Object('foo')));
assert.equal('Function', whichBuiltinType(function () {}));
assert.equal('GeneratorFunction', whichBuiltinType(function* () {}));
assert.equal('Function', whichBuiltinType(x => x * x));
assert.equal('Array', whichBuiltinType([]));
assert.equal('Int8Array', whichBuiltinType(new Int8Array()));
assert.equal('Uint8Array', whichBuiltinType(new Uint8Array()));
assert.equal('Uint8ClampedArray', whichBuiltinType(new Uint8ClampedArray()));
assert.equal('Int16Array', whichBuiltinType(new Int16Array()));
assert.equal('Uint16Array', whichBuiltinType(new Uint16Array()));
assert.equal('Int32Array', whichBuiltinType(new Int32Array()));
assert.equal('Uint32Array', whichBuiltinType(new Uint32Array()));
assert.equal('Float32Array', whichBuiltinType(new Float32Array()));
assert.equal('Float64Array', whichBuiltinType(new Float64Array()));
assert.equal('BigInt64Array', whichBuiltinType(new BigInt64Array()));
assert.equal('BigUint64Array', whichBuiltinType(new BigUint64Array()));
Tests
Simply clone the repo, npm install, and run npm test
Dependencies
Dependencies
| ID | Version |
|---|---|
| call-bound | ^1.0.2 |
| function.prototype.name | ^1.1.6 |
| has-tostringtag | ^1.0.2 |
| is-async-function | ^2.0.0 |
| is-date-object | ^1.1.0 |
| is-finalizationregistry | ^1.1.0 |
| is-generator-function | ^1.0.10 |
| is-regex | ^1.2.1 |
| is-weakref | ^1.0.2 |
| isarray | ^2.0.5 |
| which-boxed-primitive | ^1.1.0 |
| which-collection | ^1.0.2 |
| which-typed-array | ^1.1.16 |
Development Dependencies
| ID | Version |
|---|---|
| @arethetypeswrong/cli | ^0.17.1 |
| @ljharb/eslint-config | ^21.1.1 |
| @ljharb/tsconfig | ^0.2.2 |
| @types/for-each | ^0.3.3 |
| @types/function.prototype.name | ^1.1.4 |
| @types/is-async-function | ^2.0.3 |
| @types/is-date-object | ^1.0.4 |
| @types/is-generator-function | ^1.0.3 |
| @types/is-weakref | ^1.0.0 |
| @types/make-arrow-function | ^1.2.2 |
| @types/make-async-function | ^1.0.2 |
| @types/object-inspect | ^1.13.0 |
| @types/object.assign | ^4.1.0 |
| @types/tape | ^5.6.5 |
| @types/which-boxed-primitive | ^1.0.3 |
| auto-changelog | ^2.5.0 |
| available-typed-arrays | ^1.0.7 |
| encoding | ^0.1.13 |
| eslint | =8.8.0 |
| evalmd | ^0.0.19 |
| for-each | ^0.3.3 |
| has-bigints | ^1.0.2 |
| has-symbols | ^1.1.0 |
| in-publish | ^2.0.1 |
| make-arrow-function | ^1.2.0 |
| make-async-function | ^1.0.0 |
| make-generator-function | ^2.0.0 |
| npmignore | ^0.3.1 |
| nyc | ^10.3.2 |
| object-inspect | ^1.13.3 |
| object.assign | ^4.1.5 |
| safe-publish-latest | ^2.0.0 |
| tape | ^5.9.0 |
| typescript | next |
Keywords
type
builtin
ecmascript
