8. Extract<T, U>を実装する

  - accepted / - tried

Exclude<T, K>と逆で、 Extract<T, U>は、TからUに代入できるメンバーを抽出したtypeを返す。

MyExtract<T, U>を実装してみてください。

type Foo = 'a' | 'b' | 'c'

type A = MyExtract<Foo, 'a'> // 'a'
type B = MyExtract<Foo, 'a' | 'b'> // 'a' | 'b'
type C = MyExtract<Foo, 'b' | 'c' | 'd' | 'e'>  // 'b' | 'c'
type D = MyExtract<Foo, never>  // never

5分間以内で解いてみて

(27)