@voxpelli/typed-utils
Version:
My personal (type-enabled) utils / helpers
48 lines • 1.47 kB
TypeScript
/**
* @template {object} T
* @template {keyof T} K
* @param {T} input
* @param {K[]|ReadonlyArray<K>} keys
* @returns {Omit<T, K>}
*/
export function omit<T extends object, K extends keyof T>(input: T, keys: K[] | ReadonlyArray<K>): Omit<T, K>;
/**
* @template {object} T
* @template {keyof T} K
* @param {T} input
* @param {K[]|ReadonlyArray<K>} keys
* @returns {Pick<T, K>}
*/
export function pick<T extends object, K extends keyof T>(input: T, keys: K[] | ReadonlyArray<K>): Pick<T, K>;
/**
* @template {object} T
* @typedef {T extends unknown ? keyof T : never} ObjectKeysAll
*/
/**
* @template {object} T
* @param {T} value
* @returns {Array<keyof T>}
*/
export function typedObjectKeys<T extends object>(value: T): Array<keyof T>;
/**
* @template {object} T
* @param {T} value
* @returns {Array<ObjectKeysAll<T>>}
*/
export function typedObjectKeysAll<T extends object>(value: T): Array<ObjectKeysAll<T>>;
/**
* @template {object} T
* @param {T} collection
* @param {unknown} key
* @returns {key is keyof T}
*/
export function hasOwn<T extends object>(collection: T, key: unknown): key is keyof T;
/**
* @template {object} T
* @param {T} collection
* @param {unknown} key
* @returns {key is ObjectKeysAll<T>}
*/
export function hasOwnAll<T extends object>(collection: T, key: unknown): key is ObjectKeysAll<T>;
export type ObjectKeysAll<T extends object> = T extends unknown ? keyof T : never;
//# sourceMappingURL=object.d.ts.map