Код нормальный.
Этот код давно используется и работает отлично.
я должен получить ошибку
// js
const converter = (obj) => ({ type: obj.type });
// ts
const converter = <O extends { type: { toString: () => string } }>(obj: O) => ({ type: obj.type.toString() });
а у енума вообще гарантирована какая-то последовательность?
Не совсем понятно, что конкретно хочет автор.
[объект].forEach вызывает сомнения. Может всё-таки массив?
Учитывая, что ты не можешь изложить свои мысли так, чтобы все поняли, при этом сам не можешь понять то, что тебе пишут, то я могу пожелать тебе только удачи.)