
Security News
TC39 Advances Temporal to Stage 4 Alongside Several ECMAScript Proposals
TC39’s March 2026 meeting advanced eight ECMAScript proposals, including Temporal reaching Stage 4 and securing its place in the ECMAScript 2026 specification.
@xylabs/typeof
Advanced tools
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
@xylabs/typeof
function ifDefined<T>(value, func): T | undefined;
T
T
(value) => void
T | undefined
function ifTypeOf<T, R>(
typeName,
value,
trueFunc,
isFunc?): R | undefined;
T
R
unknown
(value) => R
(value) => boolean
R | undefined
function isArray(value): value is readonly unknown[];
unknown
value is readonly unknown[]
function isArray<T>(value): value is Extract<T, readonly unknown[]>;
T
T
value is Extract<T, readonly unknown[]>
function isArrayBufferView(value): value is ArrayBufferView<ArrayBufferLike>;
unknown
value is ArrayBufferView<ArrayBufferLike>
function isArrayBufferView<T>(value): value is Extract<T, ArrayBufferView<ArrayBufferLike>>;
T extends ArrayBufferView<ArrayBufferLike>
T
value is Extract<T, ArrayBufferView<ArrayBufferLike>>
function isBigInt(value): value is bigint;
unknown
value is bigint
function isBigInt<T>(value): value is Extract<T, bigint>;
T extends bigint
T
value is Extract<T, bigint>
function isBlob(value): value is Blob;
unknown
value is Blob
function isBlob<T>(value): value is Extract<T, Blob>;
T extends Blob
T
value is Extract<T, Blob>
function isBoolean(value): value is boolean;
unknown
value is boolean
function isBoolean<T>(value): value is Extract<T, boolean>;
T extends boolean
T
value is Extract<T, boolean>
function isDataView(value): value is DataView<ArrayBufferLike>;
unknown
value is DataView<ArrayBufferLike>
function isDataView<T>(value): value is Extract<T, DataView<ArrayBufferLike>>;
T
T
value is Extract<T, DataView<ArrayBufferLike>>
function isDate(value): value is Date;
unknown
value is Date
function isDate<T>(value): value is Extract<T, Date>;
T
T
value is Extract<T, Date>
function isDateString(value): value is string;
unknown
value is string
function isDateString<T>(value): value is Extract<T, string>;
T
T
value is Extract<T, string>
function isDefined<T>(value): value is Exclude<T, undefined>;
T
T
value is Exclude<T, undefined>
function isDefinedNotNull<T>(value): value is Exclude<T, null | undefined>;
T
T
value is Exclude<T, null | undefined>
function isEmpty<T>(value): value is T;
T
unknown
value is T
function isEmpty<K, V, T>(value): value is Extract<T, Record<K, never>>;
K extends RecordKey
V
T extends Record<K, V>
T
value is Extract<T, Record<K, never>>
function isEmpty<T>(value): value is Extract<T, never[]>;
T extends unknown[]
T
value is Extract<T, never[]>
function isEmptyArray(value): value is [];
unknown
value is []
function isEmptyArray<T>(value): value is Extract<T, unknown[]>;
T extends unknown[]
T
value is Extract<T, unknown[]>
function isEmptyObject(value): value is {};
unknown
value is {}
function isEmptyObject<K, V, T>(value): value is Extract<T, Record<K, never>>;
K extends RecordKey
V
T extends Record<K, V>
T
value is Extract<T, Record<K, never>>
function isEmptyString(value): value is "";
unknown
value is ""
function isEmptyString<T>(value): value is Extract<T, "">;
T extends string
T
value is Extract<T, "">
function isError(value): value is Error;
unknown
value is Error
function isError<T>(value): value is Extract<T, Error>;
T
T
value is Extract<T, Error>
function isFalsy<T>(value): value is Extract<T, false | "" | 0 | 0n | null | undefined>;
T
T
value is Extract<T, false | "" | 0 | 0n | null | undefined>
function isFalsy<T>(value): value is Extract<T, false>;
T extends boolean
T
value is Extract<T, false>
function isFalsy<T>(value): value is Extract<T, 0>;
T extends number
T
value is Extract<T, 0>
function isFalsy<T>(value): value is Extract<T, 0n>;
T extends bigint
T
value is Extract<T, 0n>
function isFalsy<T>(value): value is Extract<T, null>;
T extends null
T
value is Extract<T, null>
function isFalsy<T>(value): value is Extract<T, undefined>;
T extends undefined
T
value is Extract<T, undefined>
function isFalsy<T>(value): value is Extract<T, "">;
T extends string
T
value is Extract<T, "">
function isFile(value): value is File;
unknown
value is File
function isFile<T>(value): value is Extract<T, File>;
T extends File
T
value is Extract<T, File>
function isFunction(value): value is AnyFunction;
unknown
value is AnyFunction
function isFunction<T>(value): value is Extract<T, AnyFunction>;
T extends AnyFunction
T
value is Extract<T, AnyFunction>
function isMap(value): value is Map<unknown, unknown>;
unknown
value is Map<unknown, unknown>
function isMap<K, V, T>(value): value is Extract<T, Map<K, V>>;
K
V
T extends Map<K, V>
T
value is Extract<T, Map<K, V>>
function isNull(value): value is null;
unknown
value is null
function isNull<T>(value): value is Extract<T, null>;
T
T
value is Extract<T, null>
function isNumber(value): value is number;
unknown
value is number
function isNumber<T>(value): value is Extract<T, number>;
T extends number
T
value is Extract<T, number>
function isObject(value): value is object;
unknown
value is object
function isObject<T>(value): value is Extract<T, object>;
T extends object
T
value is Extract<T, object>
function isPopulatedArray(value): value is readonly unknown[];
unknown
value is readonly unknown[]
function isPopulatedArray<T>(value): value is Extract<T, readonly unknown[]>;
T extends unknown[]
T
value is Extract<T, readonly unknown[]>
function isPromise(value): value is Promise<unknown>;
unknown
value is Promise<unknown>
function isPromise<T>(value): value is Extract<T, Promise<unknown>>;
T
T
value is Extract<T, Promise<unknown>>
function isPromiseLike(value): value is Promise<unknown>;
unknown
value is Promise<unknown>
function isPromiseLike<T>(value): value is Extract<T, Promise<unknown>>;
T
T
value is Extract<T, Promise<unknown>>
function isRegExp(value): value is RegExp;
unknown
value is RegExp
function isRegExp<T>(value): value is Extract<T, RegExp>;
T extends RegExp
T
value is Extract<T, RegExp>
function isSet(value): value is Set<unknown>;
unknown
value is Set<unknown>
function isSet<T>(value): value is Extract<T, Set<unknown>>;
T extends Set<unknown>
unknown
value is Extract<T, Set<unknown>>
function isString(value): value is string;
unknown
value is string
function isString<T>(value): value is Extract<T, string>;
T extends string
T
value is Extract<T, string>
function isSymbol(value): value is symbol;
unknown
value is symbol
function isSymbol<T>(value): value is Extract<T, symbol>;
T extends symbol
T
value is Extract<T, symbol>
function isTruthy<T>(value): value is Exclude<T, false | "" | 0 | 0n | null | undefined>;
T
T
value is Exclude<T, false | "" | 0 | 0n | null | undefined>
function isTruthy<T>(value): value is Extract<T, true>;
T extends boolean
T
value is Extract<T, true>
function isTruthy<T>(value): value is Extract<T, number>;
T extends number
T
value is Extract<T, number>
function isTruthy<T>(value): value is Extract<T, bigint>;
T extends bigint
T
value is Extract<T, bigint>
function isTruthy<T>(value): value is Extract<T, null>;
T extends null
T
value is Extract<T, null>
function isTruthy<T>(value): value is Extract<T, undefined>;
T extends undefined
T
value is Extract<T, undefined>
function isTruthy<T>(value): value is Extract<T, string>;
T extends string
T
value is Extract<T, string>
function isType(value, expectedType): boolean;
unknown
boolean
function isTypedArray(value): value is TypedArray;
unknown
value is TypedArray
function isTypedKey(value): value is string | number | symbol;
unknown
value is string | number | symbol
function isTypedObject(value): value is TypedObject;
unknown
value is TypedObject
function isTypedValue(value): value is TypedValue;
unknown
value is TypedValue
function isUndefined(value): value is undefined;
unknown
value is undefined
function isUndefined<T>(value): value is Extract<T, undefined>;
T
T
value is Extract<T, undefined>
function isUndefinedOrNull(value): value is null | undefined;
unknown
value is null | undefined
function isUndefinedOrNull<T>(value): value is Extract<T, null | undefined>;
T
T
value is Extract<T, null | undefined>
function isValidTypedFieldPair(pair): pair is [key: string | number | symbol, value: TypedValue];
[unknown, unknown]
pair is [key: string | number | symbol, value: TypedValue]
function isWeakMap(value): value is WeakMap<WeakKey, unknown>;
unknown
value is WeakMap<WeakKey, unknown>
function isWeakMap<K, V, T>(value): value is Extract<T, WeakMap<K, V>>;
K extends WeakKey
V
T extends WeakMap<K, V>
T
value is Extract<T, WeakMap<K, V>>
function isWeakSet(value): value is WeakSet<WeakKey>;
unknown
value is WeakSet<WeakKey>
function isWeakSet<K, T>(value): value is Extract<T, WeakSet<K>>;
K extends WeakKey
T extends WeakSet<K>
T
value is Extract<T, WeakSet<K>>
function typeOf<T>(item): TypeOfTypes;
T
T
function validateType<T>(
typeName,
value,
optional?): [T | undefined, Error[]];
T
T
boolean = false
[T | undefined, Error[]]
type AnyFunction = (...args) => unknown;
...unknown[]
unknown
type Brand<T, B> = T & { [K in keyof B]: B[K] };
T
B
type FieldType =
| "string"
| "number"
| "object"
| "symbol"
| "undefined"
| "null"
| "array"
| "function";
type IdentityFunction<T> = (value) => value is T;
T
unknown
value is T
type ObjectTypeShape = Record<string | number | symbol, FieldType>;
type RecordKey = string | number | symbol;
type TypeOfTypes =
| "string"
| "number"
| "object"
| "array"
| "buffer"
| "null"
| "undefined"
| "bigint"
| "boolean"
| "function"
| "symbol";
type TypedArray = TypedValue[];
type TypedKey<T> = T extends string ? T : string | number | symbol;
T extends string | void = void
type TypedObject =
| {
[key: string | number | symbol]: TypedValue;
}
| object;
type TypedValue =
| bigint
| string
| number
| boolean
| null
| TypedObject
| TypedArray
| Function
| symbol
| undefined;
Part of sdk-js
See the LICENSE file for license details
FAQs
Base functionality used throughout XY Labs TypeScript/JavaScript libraries
The npm package @xylabs/typeof receives a total of 1,329 weekly downloads. As such, @xylabs/typeof popularity was classified as popular.
We found that @xylabs/typeof demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
TC39’s March 2026 meeting advanced eight ECMAScript proposals, including Temporal reaching Stage 4 and securing its place in the ECMAScript 2026 specification.

Research
/Security News
Since January 31, 2026, we identified at least 72 additional malicious Open VSX extensions, including transitive GlassWorm loader extensions targeting developers.

Research
Six malicious Packagist packages posing as OphimCMS themes contain trojanized jQuery that exfiltrates URLs, injects ads, and loads FUNNULL-linked redirects.