00399-hard-tuple-filter
Hard
tuple
infer

チャレンジのソース: type-challenges/00399-hard-tuple-filter

タプルTから指定された型FをフィルタリングするFilterOut<T, F>を実装します。

例えば、

type Filtered = FilterOut<[1, 2, null, 3], null>; // [1, 2, 3]

Loading...
import type { Equal, Expect } from '@type-challenges/utils'

type cases = [
  Expect<Equal<FilterOut<[], never>, []>>,
  Expect<Equal<FilterOut<[never], never>, []>>,
  Expect<Equal<FilterOut<['a', never], never>, ['a']>>,
  Expect<Equal<FilterOut<[1, never, 'a'], never>, [1, 'a']>>,
  Expect<Equal<FilterOut<[never, 1, 'a', undefined, false, null], never | null | undefined>, [1, 'a', false]>>,
  Expect<Equal<FilterOut<[number | null | undefined, never], never | null | undefined>, [number | null | undefined]>>,
]