Type Alias IsNarrowable<T, U>

IsNarrowable: IsNever<
    (T extends U ? true : false) & (U extends T ? false : true),
> extends true
    ? false
    : true

Type Parameters

  • T

    Type to check

  • U

    Type to against

Checks if T can be narrowed further than U

type Result = IsNarrowable<'foo', string>
// ^? true