TS7053 (typescript) как избавиться от этой ошибки при обращении к ключам объекта?

Есть такой код:

interface Obj {
      a: string
      b: string
    }
    
    const obj: Obj = {
      a: 'a',
      b: 'b',
    }
    
    Object.entries(obj).forEach(([key, value]) => {
      obj[key] = `.${value}` // << TS7053: Element implicitly has an 'any' type 
// because expression of type 'string' can't be used to index type 'Obj'.  
// No index signature with a parameter of type 'string' was found on type 'Obj'.
    })

Подскажите, как правильно это написать?


Ответы (1 шт):

Автор решения: Grundy

Для использования переменной типа string в качестве ключа, нужно добавить описание индексатора в интерфейс [index: string]: string;

interface Obj {
  a: string;
  b: string;
  [index: string]: string;
}

Playground Link

→ Ссылка