type countryListProps = { dial_code: string; code: string; name: string; lower?: string; }; const countryList: countryListProps[] = [ { 'dial_code': 'somevalue', 'code': 'somevalue', 'name': 'Somevalue', }, { 'dial_code': 'somevalue', 'code': 'somevalue', 'name': 'Somevalue', }, ]; const toLower = {} as countryListProps[]; for (let i=0; i{amp}lt;countryList.length; i  ) { const country: countryListProps = countryList[i]; toLower[country.code] = country; country.lower = country.name.toLowerCase(); // adding other propery 'lower' } 

Машинопись дает мне:

Элемент неявно имеет тип ‘any’, потому что индексное выражение не относится к типу ‘number’.

Моя цель состоит в том, чтобы просто добавить ‘lower’ в качестве свойства с типом в виде строки, чтобы мой объект результата на каждом из них выглядел примерно так:

 { 'dial_code': ' 756', 'code': 'something', 'name': 'UpperCase', 'lower': 'lowercase of name', } 

Попробуйте объявить toLower как:

 const toLower: {[key: string]: countryListProps} = {}; 

вы просто используете

 let newArr = countryList.map((i)={amp}gt;{ return { ...i, lower:'hello', } }) 

вместо того

 const toLower = {} as countryListProps[]; for (let i=0; i{amp}lt;countryList.length; i  ) { const country: countryListProps = countryList[i]; toLower[country.code] = country; country.lower = country.name.toLowerCase(); // adding other propery 'lower' }