UNPKG

@kakasoo/deep-strict-types

Version:

typescript utility types including deep-strict-omit and pick type

28 lines 1.22 kB
/** * @title Type for Retrieving Members from a Specific Key. * * The `GetMember<T, O>` type extracts the part of the key `T` after the given prefix key `O`. * If `T` starts with `O`, it returns the remaining portion of the key after `O`. * * Example Usage: * ```ts * type b = GetMember<"a.b", "a">; // "b" * type b_c = GetMember<"a.b.c", "a">; // "b.c" * ``` */ export type GetMember<T extends string, O extends string> = T extends `${O}.${infer Rest}` ? Rest : never; /** * @title Type for Retrieving the Key of an Element Member from a Specific Key. * * The `GetElementMember<T, First>` type handles both regular keys and array element keys. * If the key `T` represents an array element (denoted by `[*]`), it returns the key after the array element. * Otherwise, it falls back to using `GetMember<T, First>` to retrieve the remaining portion of the key. * * Example Usage: * ```ts * type ElementKey = GetElementMember<"a[*].b", "a">; // "b" * type NestedKey = GetElementMember<"a.b.c", "a">; // "b.c" * ``` */ export type GetElementMember<T extends string, First extends string> = T extends `${First}[*].${infer Rest}` ? Rest : GetMember<T, First>; //# sourceMappingURL=GetMember.d.ts.map