Type alias ValueAtT<Value, Path>

ValueAtT<Value, Path>: Path extends [infer First]
    ? First extends keyof Value
        ? Value[First]
        : First extends `${number}`
            ? Value extends (infer Element)[]
                ? Element
                : never
            : never
    : Path extends [infer First, ...(infer Rest)]
        ? First extends keyof Value
            ? ValueAtT<Value[First], Rest>
            : First extends `${number}`
                ? Value extends (infer Element)[]
                    ? ValueAtT<Element, Rest>
                    : never
                : never
        : never

Type Parameters

  • Value
  • Path extends unknown[]