From fbfc87f4d24de80813330a74fc30392f8bfb1002 Mon Sep 17 00:00:00 2001 From: Andrei Baltuta Date: Tue, 19 Mar 2024 00:04:27 +0100 Subject: [PATCH 1/2] change: rework types to allow usages like Parameters to function properly --- types/filesize.d.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/types/filesize.d.ts b/types/filesize.d.ts index 43c5a87..eba822d 100644 --- a/types/filesize.d.ts +++ b/types/filesize.d.ts @@ -41,14 +41,16 @@ interface FileSizeReturnObject { type FileSizeReturnArray = [ number, string ] -export function filesize(byteCount: number, options: FileSizeOptionsString | FileSizeOptionsBase): string -export function filesize(byteCount: number, options: FileSizeOptionsArray): FileSizeReturnArray -export function filesize(byteCount: number, options: FileSizeOptionsExponent): number -export function filesize(byteCount: number, options: FileSizeOptionsObject): FileSizeReturnObject -export function filesize(byteCount: number): string - -export function partial(options: FileSizeOptionsString | FileSizeOptionsBase): (byteCount: number) => string -export function partial(options: FileSizeOptionsArray): (byteCount: number) => FileSizeReturnArray -export function partial(options: FileSizeOptionsExponent): (byteCount: number) => number -export function partial(options: FileSizeOptionsObject): (byteCount: number) => FileSizeReturnObject -export function partial(): (byteCount: number) => string +type FileSizeOptionStringOrBase = FileSizeOptionsString | FileSizeOptionsBase; +type FileSizeOptions = FileSizeOptionsArray | FileSizeOptionsExponent | FileSizeOptionsObject | FileSizeOptionStringOrBase | undefined +type FileSizeReturnType = + Options extends FileSizeOptionsArray + ? FileSizeReturnArray + : Options extends FileSizeOptionsExponent + ? number + : Options extends FileSizeOptionsObject + ? FileSizeReturnObject + : string; + +export function filesize(byteCount: number, options?: Options): FileSizeReturnType +export function partial(byteCount: number, options?: Options): FileSizeReturnType From af4a6efe8e065ca97916afa19a22af5e42fa2196 Mon Sep 17 00:00:00 2001 From: Andrei Baltuta Date: Wed, 20 Mar 2024 17:56:53 +0100 Subject: [PATCH 2/2] fix: types for partial now return a higher order function --- types/filesize.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/filesize.d.ts b/types/filesize.d.ts index eba822d..10d33e8 100644 --- a/types/filesize.d.ts +++ b/types/filesize.d.ts @@ -53,4 +53,4 @@ type FileSizeReturnType = : string; export function filesize(byteCount: number, options?: Options): FileSizeReturnType -export function partial(byteCount: number, options?: Options): FileSizeReturnType +export function partial(options?: Options): (byteCount: number) => FileSizeReturnType \ No newline at end of file