typescript-conditional-types
v1.0.0
Published
Helpers for typescript generic types
Downloads
3
Maintainers
Readme
typescript-conditional-types
Helpers for typescript generic types
Table of Contents
Motivation
Creating complex types with conditional types ( T extends U ? X : Y
) could be a little verbose. This package aims to simplify code and make it more readable.
Instead of
type ComplexType<A> = A extends boolean
? number
: A extends number ? number : string
: string
You could write
type ComplexType<A> = If<
Or<Extends<A, number>, Extends<A, boolean>>,
number,
string
>;
Install
$ npm install typescript-conditional-types
You'll probably want to save it in the devDependencies
Type Helper List
- If<Condition, Then, Else>: If Condition is
true
resulting type is Then else Else - And<A, B>:
true
if A and B are bothtrue
elsefalse
- Or<A, B>:
true
if A or B aretrue
elsefalse
- Not: Negate A
- Extends<A, B>:
true
if A extends B like inA extends B ? true : false
- Extends<A, B, Then, Else: Equivalent to
If<Extends<A, B>, Then, Else>
Usage Example
import { If } from "typescript-conditional-types";
type BooleanToString<T extends boolean> = If<T, "true", "false">
BooleanToString<true> // "true"
BooleanToString<false> // "false"