npm.io
1.0.3 • Published 2 years ago

@types/omit

Licence
MIT
Version
1.0.3
Deps
0
Size
5 kB
Vulns
0
Weekly
0
Stars
51.4K

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 0939 GMT
  • Dependencies: none

Credits

These definitions were written by Rajas Paranjpe.