Skip to content

Latest commit

 

History

History
101 lines (69 loc) · 1.09 KB

File metadata and controls

101 lines (69 loc) · 1.09 KB

typelab / conditions / IfNotExtends

type IfNotExtends<T1, T2, Then, Else> = T1 extends T2 ? Else : Then;

Resolves to Then if T1 is not assignable to T2, otherwise resolves to Else.

Type Parameters

Type Parameter Default type Description

T1

The first type to compare.

T2

The second type to compare.

Then

The type to return if T1 is not assignable to T2.

Else

never

The type to return if T1 is assignable to T2. Defaults to never.

Returns

Then if T1 is not assignable to T2, Else otherwise.

Example

type Yes = IfNotExtends<string, '', 'yes', 'no'>; // 'yes'
type No = IfNotExtends<'', string, 'yes', 'no'>; // 'no'
type YesOrNo = IfNotExtends<string | number, string, 'yes', 'no'>; // 'yes' | 'no'