ngx-route-manager
Version:
A route management library for Angular
6 lines (5 loc) • 520 B
TypeScript
type ExtractParams<T extends string> = T extends `${infer _Start}:${infer Param}/${infer Rest}` ? Param | ExtractParams<Rest> : T extends `${infer _Start}:${infer Param}` ? Param : never;
type HasParams<T extends string> = ExtractParams<T> extends never ? false : true;
export type ParamsToFunction<T extends string> = HasParams<T> extends true ? (args: Record<ExtractParams<T>, string>) => string : () => string;
export declare function createUrlFunction<T extends string>(template: T): ParamsToFunction<T>;
export {};