Ыаа, как же сложно конструировать сложные типы в TypeScript!
Ыаа, как же сложно конструировать сложные типы в TypeScript!

Слава богу меня Chat GPT выручил и пояснил, как сделать то, что я хочу. До чего дошел прогресс.

88
55
11

Я не понимаю, чего ты хотел добиться таким кодом, но есть строгое ощущение, что ты делаешь что-то не так, которое, возможно, вызвано тем, что я не в контексте задачи, но выглядит это максимально странно.
Надеюсь это кусок кода для фронта.
Ну и синтаксис дженериков достаточно простой, есть таки ощущение, что ты переусложняешь.

P. S. последняя функция - мем

3

P. S. последняя функция - мем

Не мем, это простой способ получить подсказки по типам, когда надо задать объект строго определенного типа. Это довольно часто используются всякими библиотеками.

Гораздо проще написать `export default defineProduct({ ... })` чем импортировать отдельно тип, отдельно создавать константу с этим типом, а потом все это экспортировать.

Я не понимаю, чего ты хотел добиться таким кодом

Делаю транлсятор из исходного текста на своем языке разметки в Vue компоненты. Поэтому каждый "продукт" должен иметь Парсер, Представление в объектом древе (Node), и конвертер обратно в строку (Stringifier). Ну и всякие данные еще в эти продукты можно передавать.

В итоге мне нужен один супер-тип "Тип Продукта", в котором будет все данные, которые продукт может иметь, все данные от сервера, которые он может получить и дополнительные поля для конфига, которые он может иметь.

1

Зато на выходе вот такая красота. Пример продукта "заголовок".

И таких "продуктов" больше десятка будет, чтобы покрыть все элементы, которые при книги про математику потребоваться могут.

1