types-kit.iterablevalue.md

September 4, 2023 ยท View on GitHub

Home > types-kit > IterableValue

IterableValue type

Get the value type of an Iterable / AsyncIterable.

Signature:

export type IterableValue<T> = T extends Iterable<infer U>
  ? U
  : T extends AsyncIterable<infer U>
  ? U
  : never

Example

function* IterableValueFoo() {
      yield 1
      yield 2
   }
   // Expect: 1 | 2
   type FooType = IterableValue<ReturnType<typeof IterableValueFoo>>
   async function* IterableValueBar() {
      yield 3
      yield 4
   }
   // Expect: 3 | 4
   type BarType = IterableValue<ReturnType<typeof IterableValueBar>>