Как стать автором
Обновить

Комментарии 5

Не поддерживаются интерфейсы, поля нужно инициализировать, приватные поля класса могут попасть в список, такие типы как enum, type union не поддерживаются…
По моему практического смысла это не имеет, слишком много ограничений.

Мне кажется в ts нормально такую задачу можно решить только при помощи code generation.

Некоторую базовую информацию о типах полей классов дает опция emitDecoratorMetadata. Для чего-то большего — да, только кодогенерация.

Автор смешал в кучу классы и объекты. Все, что позволяет такой подход, можно записать одной строчкой на Javascript, а к классам и Typescript в целом оно никакого отношения не имеет:


function describe(obj) {
    return Object.keys(obj).map(k => ({ field: k, value: obj[k], type: typeof obj[k] }));
}

Хочется сказать, что штука получилась интересная, но пока непонятно, что с ней делать дальше.
Комментаторы выше уже сказали, почему на самом деле этот подход не получится применить ни для чего полезного. Поэтому — поставить на полочку, порадоваться и двигаться дальше.

Я думаю, что эту задачу было бы эффективнее решить через плагин к ttypescript. Как, например, это сделано в typescript-is.

Ребят, с чего вообще начать нулевому айтишнику?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации