Type Alias $Special<T, $O>

$Special: 0 extends 1 & T
    ? $ResolveBranch<$O, [$Any, $Then], T>
    : [T, unknown] extends [unknown, T]
        ? $ResolveBranch<$O, [$Unknown, $Then], T>
        : [T, never] extends [never, T]
            ? $ResolveBranch<$O, [$Never, $Then], T>
            : [T, void] extends [void, T]
                ? $ResolveBranch<$O, [$Void, $Then], T>
                : $ResolveBranch<$O, [$Else]>

A type to handle special types: any, unknown, never, and void.

Type Parameters

type YourType<T, $Options extends $Special.Options> = Special<T,
{
$any: $ResolveBranch<$Options, [$Any, ...], T>
$unknown: $ResolveBranch<$Options, [$Unknown, ...], T>
$never: $ResolveBranch<$Options, [$Never, ...], T>
$void: $ResolveBranch<$Options, [$Void, ...], T>
$then: $ResolveBranch<$Options, [...], T>
$else: $ResolveBranch<$Options, [...], T>
}>

@since 🏷️ 8.0.