@kotori-bot/tools
Version:
Tools For Kotori
10 lines (9 loc) • 577 B
TypeScript
export type ObjectValue<T extends Record<string, any>> = T extends Record<string, infer V> ? V : never;
export type ArrayValue<T extends unknown[]> = T extends (infer E)[] ? E : never;
export type ObjectArrayValue<T extends Record<string, any> | unknown[]> = T extends Record<string, any> ? ObjectValue<T> : T extends unknown[] ? ArrayValue<T> : never;
type JsonArray = boolean[] | number[] | string[] | JsonMap[] | Date[];
type AnyJson = boolean | number | string | JsonMap | Date | JsonArray | JsonArray[];
export interface JsonMap {
[key: string]: AnyJson;
}
export {};