import { JsonProperty, JsonClassType, ObjectMapper, JsonAppend } from 'jackson-js';

@JsonAppend({attrs: [{
  value: 'version',
}]})
class User {
  @JsonProperty() @JsonClassType({type: () => [Number]})
  id: number;
  @JsonProperty() @JsonClassType({type: () => [String]})
  email: string;

  constructor(id: number, email: string) {
    this.id = id;
    this.email = email;
  }
}

const user = new User(1, 'john.alfa@gmail.com');
const objectMapper = new ObjectMapper();
const jsonData = objectMapper.stringify<User>(user, {
  attributes: {
    version: 1.2
  }
});
console.log(jsonData);
// {"id":1,"email":"john.alfa@gmail.com","version":1.2}