diff --git a/types/filesize.d.ts b/types/filesize.d.ts index 43c5a87..10d33e8 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(options?: Options): (byteCount: number) => FileSizeReturnType \ No newline at end of file