typedescriptor
Version:
typedescriptor identifies and describes types.
59 lines (55 loc) • 1.24 kB
text/typescript
import { isArray } from './isArray';
import { isBoolean } from './isBoolean';
import { isError } from 'defekt';
import { isFunction } from './isFunction';
import { isMap } from './isMap';
import { isNull } from './isNull';
import { isNumber } from './isNumber';
import { isObject } from './isObject';
import { isSet } from './isSet';
import { isString } from './isString';
import { isSymbol } from './isSymbol';
import { isUndefined } from './isUndefined';
import { Type } from './Type';
const typeOf = function (value: any): Type {
if (isArray(value)) {
return 'array';
}
if (isBoolean(value)) {
return 'boolean';
}
if (isError(value)) {
return 'error';
}
if (isFunction(value)) {
return 'function';
}
if (isMap(value)) {
return 'map';
}
if (isNull(value)) {
return 'null';
}
if (isNumber(value)) {
return 'number';
}
if (isSet(value)) {
return 'set';
}
if (isString(value)) {
return 'string';
}
if (isSymbol(value)) {
return 'symbol';
}
if (isUndefined(value)) {
return 'undefined';
}
if (isObject(value)) {
return 'object';
}
throw new Error('This should not have happened! Did you invent a new scalar type?');
};
export {
typeOf
};