@voxpelli/typed-utils
Version:
My personal (type-enabled) utils / helpers
68 lines • 2.7 kB
TypeScript
/** @import { LiteralTypes } from './types/literal-types.d.ts' */
/**
* @param {unknown} value
* @returns {value is Record<string, unknown>}
*/
export function isObject(value: unknown): value is Record<string, unknown>;
/**
* @template {string} K
* @param {unknown} obj
* @param {K} key
* @returns {obj is Record<K, unknown>}
*/
export function isObjectWithKey<K extends string>(obj: unknown, key: K): obj is Record<K, unknown>;
/**
* @template {keyof LiteralTypes} T
* @param {unknown} value
* @param {T | T[]} type
* @returns {value is LiteralTypes[T]}
*/
export function isType<T extends keyof LiteralTypes>(value: unknown, type: T | T[]): value is LiteralTypes[T];
/**
* @template {string} K
* @template {keyof LiteralTypes} T
* @param {unknown} obj
* @param {K} key
* @param {T | T[]} type
* @returns {obj is Record<K, LiteralTypes[T]>}
*/
export function isKeyWithType<K extends string, T extends keyof LiteralTypes>(obj: unknown, key: K, type: T | T[]): obj is Record<K, LiteralTypes[T]>;
/**
* @template {string} K
* @template {keyof LiteralTypes} T
* @param {unknown} obj
* @param {K} key
* @param {T | T[]} type
* @returns {obj is Partial<Record<K, LiteralTypes[T]>>}
*/
export function isOptionalKeyWithType<K extends string, T extends keyof LiteralTypes>(obj: unknown, key: K, type: T | T[]): obj is Partial<Record<K, LiteralTypes[T]>>;
/**
* @template {string} K
* @template T
* @param {unknown} obj
* @param {K} key
* @param {T} value
* @returns {obj is Record<K, T>}
*/
export function isKeyWithValue<K extends string, T>(obj: unknown, key: K, value: T): obj is Record<K, T>;
/**
* @template {keyof LiteralTypes | Array<keyof LiteralTypes>} T
* @param {unknown} value
* @param {T} type
* @returns {value is Array<LiteralTypes[T extends Array<keyof LiteralTypes> ? T[number] : T]>}
*/
export function isArrayOfLiteralType<T extends keyof LiteralTypes | Array<keyof LiteralTypes>>(value: unknown, type: T): value is Array<LiteralTypes[T extends Array<keyof LiteralTypes> ? T[number] : T]>;
/**
* @template {keyof LiteralTypes | Array<keyof LiteralTypes>} T
* @param {unknown} obj
* @param {T} type
* @returns {obj is Record<string, LiteralTypes[T extends Array<keyof LiteralTypes> ? T[number] : T]>}
*/
export function isObjectValueType<T extends keyof LiteralTypes | Array<keyof LiteralTypes>>(obj: unknown, type: T): obj is Record<string, LiteralTypes[T extends Array<keyof LiteralTypes> ? T[number] : T]>;
/**
* @param {unknown} value
* @returns {value is PropertyKey}
*/
export function isPropertyKey(value: unknown): value is PropertyKey;
import type { LiteralTypes } from './types/literal-types.d.ts';
//# sourceMappingURL=is.d.ts.map