TS-Scribe - v0.6.2
    Preparing search index...

    Function getIn

    Safely traverses object along a typed path tuple and returns the value at that location, or defaultValue if any step along the way is null or undefined.

    • Supports plain objects, arrays (including negative indices), and Maps.
    • Every position in the path tuple is autocompleted and type-checked by the language server — including positions that follow numeric array indices.
    • Paths up to depth 6 have fully inferred return types. Deeper paths compile without error but return unknown.

    Note: passing undefined as defaultValue is indistinguishable from omitting it — the function cannot tell whether a key is missing or explicitly holds undefined.

    getIn(data, ['user', 'profile', 'name'])
    // 'Alice'
    getIn(data, ['user', 'profile', 'addresses', 0, 'city'])
    // 'NYC'
    getIn(data, ['user', 'profile', 'age'], 25)
    // 25
    getIn(['a', 'b', 'c'], [-1])
    // 'c'
    const map = new Map([['key', { value: 42 }]]);
    getIn(map, ['key', 'value'])
    // 42

    The root object type.

    The type of the fallback default value.

    The root value to traverse.

    Tuple of string keys or numeric indices describing the path.

    Returned when the resolved value is undefined.

    The value at the given path, or defaultValue if any step is nullish.

    • Type Parameters

      • T

      Parameters

      • object: T
      • path: []

      Returns T

    • Type Parameters

      • T
      • K0 extends string | number
      • D

      Parameters

      • object: T
      • path: [K0]
      • defaultValue: D

      Returns D | Exclude<Step<T, K0>, undefined>

    • Type Parameters

      • T
      • K0 extends string | number

      Parameters

      • object: T
      • path: [K0]

      Returns Step<T, K0>

    • Type Parameters

      • T
      • K0 extends string | number
      • K1 extends string | number
      • D

      Parameters

      • object: T
      • path: [K0, K1]
      • defaultValue: D

      Returns D | Exclude<Step<Step<T, K0>, K1>, undefined>

    • Type Parameters

      • T
      • K0 extends string | number
      • K1 extends string | number

      Parameters

      Returns Step<Step<T, K0>, K1>

    • Type Parameters

      • T
      • K0 extends string | number
      • K1 extends string | number
      • K2 extends string | number
      • D

      Parameters

      • object: T
      • path: [K0, K1, K2]
      • defaultValue: D

      Returns D | Exclude<Step<Step<Step<T, K0>, K1>, K2>, undefined>

    • Type Parameters

      • T
      • K0 extends string | number
      • K1 extends string | number
      • K2 extends string | number

      Parameters

      Returns Step<Step<Step<T, K0>, K1>, K2>

    • Type Parameters

      • T
      • K0 extends string | number
      • K1 extends string | number
      • K2 extends string | number
      • K3 extends string | number
      • D

      Parameters

      Returns D | Exclude<Step<Step<Step<Step<T, K0>, K1>, K2>, K3>, undefined>

    • Type Parameters

      • T
      • K0 extends string | number
      • K1 extends string | number
      • K2 extends string | number
      • K3 extends string | number

      Parameters

      Returns Step<Step<Step<Step<T, K0>, K1>, K2>, K3>

    • Type Parameters

      • T
      • K0 extends string | number
      • K1 extends string | number
      • K2 extends string | number
      • K3 extends string | number
      • K4 extends string | number
      • D

      Parameters

      Returns D | Exclude<Step<Step<Step<Step<Step<T, K0>, K1>, K2>, K3>, K4>, undefined>

    • Type Parameters

      • T
      • K0 extends string | number
      • K1 extends string | number
      • K2 extends string | number
      • K3 extends string | number
      • K4 extends string | number

      Parameters

      Returns Step<Step<Step<Step<Step<T, K0>, K1>, K2>, K3>, K4>

    • Type Parameters

      • T
      • K0 extends string | number
      • K1 extends string | number
      • K2 extends string | number
      • K3 extends string | number
      • K4 extends string | number
      • K5 extends string | number
      • D

      Parameters

      Returns
          | D
          | Exclude<
              Step<Step<Step<Step<Step<Step<T, K0>, K1>, K2>, K3>, K4>, K5>,
              undefined,
          >

    • Type Parameters

      • T
      • K0 extends string | number
      • K1 extends string | number
      • K2 extends string | number
      • K3 extends string | number
      • K4 extends string | number
      • K5 extends string | number

      Parameters

      Returns Step<Step<Step<Step<Step<Step<T, K0>, K1>, K2>, K3>, K4>, K5>

    • Parameters

      • object: unknown
      • path: [
            string
            | number,
            string | number,
            string | number,
            string | number,
            string | number,
            string | number,
            string | number,
            ...(string | number)[],
        ]
      • OptionaldefaultValue: unknown

      Returns unknown