Skip to content

Commit fbfc87f

Browse files
committed
change: rework types to allow usages like Parameters<typeof filesize>
to function properly
1 parent 334d549 commit fbfc87f

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

types/filesize.d.ts

+13-11
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,16 @@ interface FileSizeReturnObject {
4141

4242
type FileSizeReturnArray = [ number, string ]
4343

44-
export function filesize(byteCount: number, options: FileSizeOptionsString | FileSizeOptionsBase): string
45-
export function filesize(byteCount: number, options: FileSizeOptionsArray): FileSizeReturnArray
46-
export function filesize(byteCount: number, options: FileSizeOptionsExponent): number
47-
export function filesize(byteCount: number, options: FileSizeOptionsObject): FileSizeReturnObject
48-
export function filesize(byteCount: number): string
49-
50-
export function partial(options: FileSizeOptionsString | FileSizeOptionsBase): (byteCount: number) => string
51-
export function partial(options: FileSizeOptionsArray): (byteCount: number) => FileSizeReturnArray
52-
export function partial(options: FileSizeOptionsExponent): (byteCount: number) => number
53-
export function partial(options: FileSizeOptionsObject): (byteCount: number) => FileSizeReturnObject
54-
export function partial(): (byteCount: number) => string
44+
type FileSizeOptionStringOrBase = FileSizeOptionsString | FileSizeOptionsBase;
45+
type FileSizeOptions = FileSizeOptionsArray | FileSizeOptionsExponent | FileSizeOptionsObject | FileSizeOptionStringOrBase | undefined
46+
type FileSizeReturnType<Options extends FileSizeOptions> =
47+
Options extends FileSizeOptionsArray
48+
? FileSizeReturnArray
49+
: Options extends FileSizeOptionsExponent
50+
? number
51+
: Options extends FileSizeOptionsObject
52+
? FileSizeReturnObject
53+
: string;
54+
55+
export function filesize<Options extends FileSizeOptions = undefined>(byteCount: number, options?: Options): FileSizeReturnType<Options>
56+
export function partial<Options extends FileSizeOptions = undefined>(byteCount: number, options?: Options): FileSizeReturnType<Options>

0 commit comments

Comments
 (0)