Go Back
Refer: Easy - If
Describe
Implement a utils If which accepts condition C, a truthy return type T, and a falsy return type F. C is expected to be either true or false while T and F can be any type.
For example:
code snippetCopytypescripttype A = If<true, 'a', 'b'> // expected to be 'a'
type B = If<false, 'a', 'b'> // expected to be 'b'
Test Cases
code snippetCopytypescriptimport { Equal, Expect } from '@type-challenges/utils'
type cases = [Expect<Equal<If<true, 'a', 'b'>, 'a'>>, Expect<Equal<If<false, 'a', 2>, 2>>]
// @ts-expect-error
type error = If<null, 'a', 'b'>
Solution
code snippetCopytypescripttype If<C, T, F> = C extends true ? T : F