Задача

Типизировать функцию get(obj, path), где path — строка вида 'a.b.c'. Тип результата должен выводиться автоматически, а невалидные пути — подсвечиваться ошибкой.

Пример

const data = {
    user: {
        name: 'Max',
        address: { city: 'Berlin', zip: 10115 },
    },
};
 
get(data, 'user.name'); // тип: string
get(data, 'user.address.city'); // тип: string
get(data, 'user.address.zip'); // тип: number
get(data, 'user.address.foo'); // ошибка компиляции

Решение

См. также