Кто-нибудь может предложить лучший способ?
Да.
Лучшее, что можно сделать, зависит от некоторых факторов, таких как, почему это свойство существует, будет ли оно когда-либо изменяться и где вам нужен доступ к нему.
Один из вариантов - сделать number
кратковременным, удалить поле number
и иметь метод getNumber()
, который возвращает что-то вроде project.ticketPrepender + id.toString().padLeft( 5, '0' )
.