Рассмотрим, что у меня есть загруженный объект данных json. Тип json определяется следующим образом:
const myObject: {[p: string]: unknown} = JSON.parse(somestring);
I wi sh для обработки этого json, как если бы это было дерево словарей. Теперь я пытаюсь прочитать какой-нибудь дочерний объект и перебрать его:
const cfgCookie = cfg.cookie;
if (typeof cfgCookie === "object" && cfgCookie !== null && !Array.isArray(cfgCookie)) {
const someElement = cfgCookie.maxAge;
}
Однако теперь машинописный текст жалуется, что свойство maxAge не существует для объекта. Чего и следовало ожидать. Поэтому я пытаюсь получить его динамически, как если бы это был словарь:
const someElement = cfgCookie['maxAge'];
Это дает следующую ошибку:
TS7053: Element implicitly has an 'any' type because expression of type '"maxAge"' can't be used to index type '{}'. Property 'maxAge' does not exist on type '{}'.
Итак, как бы мне уточнить неизвестное до индексируемого объект?