Disclosure

Most of the problems under my TypeHero Challenges folder were either obtained from typehero.dev or from type-challenges repo. Purpose of these articles are just to document my approaches for my easy reference. Please visit the respective links for more info.

Link to original

Problem Description

Implement the util type If<C, T, F> which accepts condition C, a truthy value T, and a falsy value FC is expected to be either true or false while T and Fcan be any type.

For example:

type A = If<true, 'a', 'b'>  // expected to be 'a'
type B = If<false, 'a', 'b'> // expected to be 'b'

Solutions

Approach 1

type If<C extends boolean, T, F> = C extends true ? T : F;