Потому что TS не знает что конкретно находится в переменной id. Он только знает что там какая-то строка. А поскольку id может быть любой строкой, то и значение ITEMS[0][id] тоже может быть чем угодно.
Вы можете изменить ваш интерфейс, указав какие значения может принимать id
А вы ждали мгновенного результата? Месяц - это очень мало. За месяц даже учебник для начинающих нормально не изучить. На тренировку мозга требуются существенно больше времени. Стартовый уровень, достаточный для найма, нарабатывается полгода-год. Пара-тройка лет практики в окружении профессионалов нужна, чтобы вырасти в мидлы. И процесс не останавливается никогда, чем больше вы тренируетесь, тем больший спектр задач можете решать и тем проще это вам даётся. Продолжайте стараться, всё придётся при должном упорстве.
Читаю книгу "Изучаем C#" 3-е изд. Стиллмен Э., Грин Дж.. В ней как раз применяются методики заставляющие мозг воспринимать книгу как "нечто важное" и отключать блок против лишней информации. Все бы книги так писали!)
С 27 по 30 описаны методики обмана мозга, чтобы он воспринимал книгу как важное и не огораживался от нее. Можете самостоятельно попробывать применить их.
На 31 странице 10 советов как увеличить восприимчивость к информации из книги.