UNPKG

@vegajs/config

Version:

A flexible and easy-to-use configuration management service for TypeScript/JavaScript applications, allowing initialization, setting, and retrieval of configuration parameters.

5 lines (4 loc) 374 B
export type Path<T> = T extends object ? { [K in keyof T]: K extends string ? T[K] extends object ? `${K}.${Path<T[K]>}` | K : K : never; }[keyof T] : never; export type PathValue<T, P extends string> = P extends `${infer Key}.${infer Rest}` ? Key extends keyof T ? Rest extends Path<T[Key]> ? PathValue<T[Key], Rest> : never : never : P extends keyof T ? T[P] : never;