Есть ли способ динамически создать класс с использованием Typescript, который можно сохранить в своем собственном файле для последующего многократного использования в других проектах?
Например, допустим, я хочуиметь класс SpecificationParser
, который может читать некоторый файл спецификации JSON
и создавать представление некоторой сущности.
Затем я хотел бы динамически создать класс, который будет принимать представление и преобразовывать его вКласс построителя, который будет иметь динамически созданные методы со свойствами (именование, тип, параметры ...) из одного представления.
spec: {
a: {
type: string,
length: 10
},
b: {
type: number,
min: 3,
max: 9
}
}
+
|
|
|
+--------v----------+ +-------------------+ +--------------------+
|SpecificationParser| |Representation | |DynamicClass |
+-------------------+ +-------------------+ +--------------------+
|Parse +----->Compile +----->withA(value: string)|
| | | | | |
| | | | |withB(value: number)|
+-------------------+ +-------------------+ +--------------------+
Вещи, которые я хотел бы достичь:
- Наличие динамически созданных классов TS из файла спецификации
- Эти классы получают преимущества от функций TS (проверка типа ...)
Есть лиинструменты из среды TS, которые позволяют это?
Если нет, то какие инструменты можно / нужно использовать?