@types/omit
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

Installation

npm install --save @types/omit

Summary

This package contains type definitions for omit (https://github.com/DamonOehlman/omit#readme).

Details

Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/omit.

index.d.ts

type Key = string | readonly string[];
type KeyAsStringType<K extends Key> = K extends readonly string[] ? K[number] : K;
type Rule<K extends Key, V> = Key | ((key: K, value: V, target: Record<KeyAsStringType<K>, V>) => boolean);

type OmitMultiple<T, K extends Key> = Pick<T, Exclude<keyof T, KeyAsStringType<K>>>;
type MaybeOmitMultiple<T, K extends Key> =
    & OmitMultiple<T, K>
    & {
        [P in Extract<keyof T, KeyAsStringType<K>>]?: T[P];
    };

// Static key
declare function omit<K extends Key>(key: K): <T>(target: T) => T extends Array<infer T> ? Array<OmitMultiple<T, K>>
    : OmitMultiple<T, K>;
// Static key, with target
declare function omit<T, K extends Key>(key: K, target: T): T extends Array<infer T> ? Array<OmitMultiple<T, K>>
    : OmitMultiple<T, K>;
// Custom key
declare function omit<K extends Key>(
    rule: Rule<K, any>,
): <T>(target: T) => T extends Array<infer T> ? Array<MaybeOmitMultiple<T, K>>
    : MaybeOmitMultiple<T, K>;
// Custom key, with target
declare function omit<T, K extends Key>(
    key: Rule<K, any>,
    target: T,
): T extends Array<infer T> ? Array<MaybeOmitMultiple<T, K>>
    : MaybeOmitMultiple<T, K>;

export = omit;

Additional Details

  • Last updated: Tue, 07 Nov 2023 09:09:39 GMT
  • Dependencies: none

Credits

These definitions were written by Rajas Paranjpe.

Readme

Keywords

none

Package Sidebar

Install

npm i @types/omit

Weekly Downloads

244

Version

1.0.3

License

MIT

Unpacked Size

4.9 kB

Total Files

5

Last publish

Collaborators

  • types