Converts a type into a tuple whose element is optional when T is assignable to void | undefined.
T
void | undefined
Designed for rest parameters. The check considers the whole type, so a union such as string | undefined still requires an argument.
string | undefined
The type to evaluate for optionality.
function dispatch<T>(action: string, ...payload: OptionalIfVoid<T>): void { // ...}dispatch<void>("reset"); // Payload omitteddispatch<number>("increment", 5); // Payload requireddispatch<number>("increment"); // Error: missing argument Copy
function dispatch<T>(action: string, ...payload: OptionalIfVoid<T>): void { // ...}dispatch<void>("reset"); // Payload omitteddispatch<number>("increment", 5); // Payload requireddispatch<number>("increment"); // Error: missing argument
Converts a type into a tuple whose element is optional when
Tis assignable tovoid | undefined.Designed for rest parameters. The check considers the whole type, so a union such as
string | undefinedstill requires an argument.