UNPKG

@voxpelli/typed-utils

Version:

My personal (type-enabled) utils / helpers

48 lines 1.47 kB
/** * @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