type-plus
    Preparing search index...

    Type Alias Assignable<A, B, $O>

    Assignable: $Special<
        B,
        {
            $any: $ResolveBranch<$O, [0 extends 1 & A ? $Any : unknown, $Then], A>;
            $else: $Special<
                A,
                {
                    $any: $ResolveBranch<$O, [$Any, $Then], A>;
                    $else: Assignable.$<A, B, $O>;
                    $never: $ResolveBranch<$O, [$Never, $Then], A>;
                    $unknown: $ResolveBranch<$O, [$Unknown, $Then], A>;
                },
            >;
            $never: $ResolveBranch<
                $O,
                [A, never] extends [never, A] ? [$Never, $Then] : [$Else],
                A,
            >;
            $unknown: $ResolveBranch<
                $O,
                [[A, unknown] extends [unknown, A] ? $Unknown : unknown, $Then],
                A,
            >;
        },
    >

    🎭 predicate

    Validate if A is assignable to B.

    Type Parameters

    type R = Assignable<any, any> // true
    type R = Assignable<any, 1> // true
    type R = Assignable<unknown, unknown> // true
    type R = Assignable<never, never> // true
    type R = Assignable<1, 1> // true
    type R = Assignable<'a', 'a'> // true
    type R = Assignable<'a', 'b'> // false
    type R = Assignable<'a', string> // true

    🔢 customize

    Filter to ensure A is assignable to B.

    type R = Assignable<any, any, { selection: 'filter' }> // any
    type R = Assignable<1, number, { selection: 'filter' }> // 1

    🔢 customize

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

    type R = Assignable<any, any, Assignable.$Branch> // $Then
    

    🔢 customize

    Override special types branch.

    type R = Assignable<any, any, { $any: 1 }> // 1
    type R = Assignable<unknown, any, { $unknown: 1 }> // 1
    type R = Assignable<never, any, { $never: 1 }> // 1