Это невозможно для произвольного количества ключей, но вы можете сделать что-то похожее на loda sh get
для ваших нужд.
Также возможно использовать функция рекурсивным способом.
Пример с упомянутым _.get
(его тип поддерживает до 4 клавиш):
const obj = {
user: {
pets: [{
toys: [{
name: "Toughy",
price: 1999
}]
}]
}
} as const
const toy1 = _.get(obj, ["user", "pets", 0, "toys"]); // correct type
const toy2 = _.get(obj, ["user", "pets", 0, "toys", 0]); // any :(
const toy3 = _.get(_.get(obj, ["user", "pets", 0, "toys"]), [0]); // correct type :)