Add is.directInstanceOf()

This commit is contained in:
Brandon Smith 2017-12-09 00:01:39 -05:00
parent 4ce2ee9d39
commit fe344fd7eb
3 changed files with 27 additions and 0 deletions

View file

@ -162,6 +162,8 @@ namespace is { // tslint:disable-line:no-namespace
export const arrayBuffer = isObjectOfType(TypeName.ArrayBuffer);
export const sharedArrayBuffer = isObjectOfType(TypeName.SharedArrayBuffer);
export const directInstanceOf = (instance: any, klass: any) => object(instance) && object(klass) && Object.getPrototypeOf(instance) === klass.prototype;
export const truthy = (value: any) => Boolean(value);
export const falsy = (value: any) => !value;

View file

@ -507,6 +507,17 @@ test('is.dataView', t => {
testType(t, 'arrayBuffer');
});
test('is.directInstanceOf', t => {
const error = new Error();
const errorSubclass = new ErrorSubclassFixture();
t.true(m.directInstanceOf(error, Error));
t.true(m.directInstanceOf(errorSubclass, ErrorSubclassFixture));
t.false(m.directInstanceOf(error, ErrorSubclassFixture));
t.false(m.directInstanceOf(errorSubclass, Error));
});
test('is.truthy', t => {
t.true(m.truthy('unicorn'));
t.true(m.truthy('🦄'));