type-plus
    Preparing search index...

    Type Alias $SelectInvert<T, U, $O>

    $SelectInvert: $Special<
        T,
        {
            $any: $ResolveBranch<$O, [$Any, $Then], T>;
            $else: $Distributive.Parse<$O> extends true
                ? $SelectInvert._D<T, U, $O>
                : $SelectInvert._N<T, U, $O>;
            $never: $ResolveBranch<$O, [$Never, $Then], T>;
            $unknown: $ResolveBranch<$O, [$Unknown, $Then], T>;
            $void: $ResolveBranch<$O, [$Void, $Then], T>;
        },
    >

    🎭 predicate ㊙️ internal

    Validate if T is U.

    Type Parameters

    type R = $SelectInvert<undefined, undefined> // true

    type R = $SelectInvert<never, undefined> // false
    type R = $SelectInvert<unknown, undefined> // false
    type R = $SelectInvert<string | boolean, undefined> // false

    type R = $SelectInvert<string | undefined, undefined> // boolean

    🔢 customize

    Filter to ensure T is U, otherwise returns never.

    type R = $SelectInvert<undefined, undefined, { selection: 'filter' }> // undefined

    type R = $SelectInvert<never, undefined, { selection: 'filter' }> // never
    type R = $SelectInvert<unknown, undefined, { selection: 'filter' }> // never
    type R = $SelectInvert<string | boolean, undefined, { selection: 'filter' }> // never

    type R = $SelectInvert<string | undefined, undefined> // undefined

    🔢 customize:

    Disable distribution of union types.

    type R = $SelectInvert<undefined | 1, undefined> // boolean
    type R = $SelectInvert<undefined | 1, undefined, { distributive: false }> // false

    🔢 customize

    Use unique branch identifiers to allow precise processing of the result.

    type R = $SelectInvert<undefined, undefined, $SelectionBranch> // $Then
    type R = $SelectInvert<string, undefined, $SelectionBranch> // $Else