Это не проблема Angular serialization, а скорее проблема TypeScript / JavaScript.
Вы можете настроить сериализацию, переопределив метод toJSON()
в ваших классах TypeScript.
class User {
public id: number;
public firstName: string;
public lastName: string;
public age: number;
public toJSON(): User {
return Object.assign({}, this, {
$type: 'User'
});
}
}
Метод toJSON()
просто создает новый объект, используя текущий, и добавляет к нему свойство $type
. Он будет вызываться при вызове метода JSON.stringify()
. Таким образом, вам не нужно создавать переменную $type
в вашем классе.
Пример:
const newUser: User = new User();
newUser.id = 8;
newUser.firstName = "John";
newUser.lastName = "Doe";
newUser.age = 42;
const newUserAsJson: string = JSON.stringify(newUser);
console.log(newUserAsJson);
// Displays:
// {firstName: "John", lastName: "Doe", id: 8, age: 42, $type: "User"}
Надеюсь, это поможет.