Target object type.
contracts/common.md#principled-implementation The mapped type delegates each field to a distributive value conversion, so file alternatives and file-array alternatives accept React Native descriptors even when optional or mixed with another field type. Arrays and functions at the outer body level become never because a form body is an object of named fields.
contracts/common.md#clear-and-simple-design One conditional over the object type, delegating the per-value rule to FormDataInput.Value.
FormData input type.
FormDataInput<T>is a type for the input of theFormDatarequest, castingFileproperty value type as an union ofFileand FormDataInput.IFileProps, especially for the React Native environment.You know what? In the React Native environment,
Fileclass is not supported. Therefore, when composing aFormDatarequest, you have to put the URI address of the local filesystem with file name and content type that is represented by the FormDataInput.IFileProps type.This
FormDataInput<T>type is designed for that purpose. If the property value type is aFileclass, it converts it to an union type ofFileand FormDataInput.IFileProps type. Also, if the property value type is an array ofFileclass, it converts it to an array of union type ofFileand FormDataInput.IFileProps type too.Atomic fields retain their original types; file fields accept either a File or the React Native file descriptor.