FormDataInput: T extends any[]
    ? never
    : T extends Function
        ? never
        : { [P in keyof T]: T[P] extends (infer U)[] ? Value<U>[] : Value<T[P]> }

FormData input type.

FormDataInput<T> is a type for the input of the FormData request, casting File property value type as an union of File and FormDataInput.IFileProps, especially for the React Native environment.

You know what? In the React Native environment, File class is not supported. Therefore, when composing a FormData request, you have to put the URI address of the local filesystem with file name and contet type that is represented by the FormDataInput.IFileProps type.

This FormDataInput<T> type is designed for that purpose. If the property value type is a File class, it converts it to an union type of File and FormDataInput.IFileProps type. Also, if the property value type is an array of File class, it converts it to an array of union type of File and FormDataInput.IFileProps type too.

Before After
boolean boolean
bigint bigint
number number
string string
File File | IFileProps

Type Parameters

  • T extends object

    Target object type.

Jeongho Nam - https://github.com/samchon