Владимир Коротенко, по условию задачи "что все поля которые есть" - подразумевается, что полей много или неограниченное количество.
Через Index Signatures всё хорошо, но Record в данном случае лаконичней.
Владимир Коротенко,
1) Что вы понимаете под объектом в JavaScript?
2) Поясните про условия особой обработки, не понял вашей претензии. TS же только в compile-time работает.
Alex Karo, объект имеет конечное число свойств, каждое свойство имеет тип. Если же не имеет то это либо типизированный список, либо вообще список. И что с ним делать не совсем понятно