diff --git a/index.d.ts b/index.d.ts index 09c3a98..5886c44 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,11 +1,25 @@ declare const flagSymbol: unique symbol; declare function arg( - spec: T, + spec: arg.SpecToMap, options?: arg.Options ): arg.Result; declare namespace arg { + type AddDashesToArg = T extends string + ? `--${T}` + : T extends `--${infer K}` + ? K + : T extends `-${infer K}` + ? K + : never; + + type SpecToMap = T extends arg.Spec + ? { + [K in keyof T as AddDashesToArg]: T[K]; + } + : never; + export function flag(fn: T): T & { [flagSymbol]: true }; export const COUNT: Handler & { [flagSymbol]: true };