UNPKG

@voxpelli/typed-utils

Version:

My personal (type-enabled) utils / helpers

68 lines 2.7 kB
/** @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