Встречается на собеседованиях • сегодня
Как восстановить переданный из одной TypeScript программы в другую объект в JSON чтобы сохранить метаданные
Для сохранения метаданных при сериализации/десериализации объектов в TypeScript можно использовать `Reflect` API или кастомные декораторы.
Пример с декораторами:
```typescript
class User {
@serializable
name: string;
@serializable
age: number;
}
function serializable(target: any, key: string) {
Reflect.defineMetadata('serializable', true, target, key);
}
function serialize(obj: any): string {
const result: any = {};
Object.keys(obj).forEach(key => {
if (Reflect.getMetadata('serializable', obj, key)) {
result[key] = obj[key];
}
});
return JSON.stringify(result);
}
const user = new User();
user.name = 'Alice';
user.age = 25;
const json = serialize(user); // {"name":"Alice","age":25}
```
Для восстановления метаданных после парсинга JSON можно использовать фабрику или конструктор.
```typescript
function deserialize(json: string, type: new () => T): T {
const obj = new type();
const data = JSON.parse(json);
Object.keys(data).forEach(key => {
if (Reflect.getMetadata('serializable', obj, key)) {
obj[key] = data[key];
}
});
return obj;
}
const restoredUser = deserialize(json, User);
```
Также можно использовать библиотеки, например, `class-transformer`.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы