Я хотел бы расширить прототип String и использовать его в одном или нескольких компонентах моего приложения Angular 5. Основная причина в том, что у меня есть ряд объектов, которые имеют свойства, которые иногда заполняются, а иногда нет. Пример: customer.address
иногда является string
(_id
адреса), а иногда он заполняется и является Address
объектом со свойством _id
.
Что я хочу, так это то, что мне не нужно беспокоиться о том, заполнен ли customer.address или нет, и просто получить доступ к _id
. Я знаю, что это считается анти-паттерном Javascript согласно некоторым другим ответам здесь , но я подумал сделать что-то вроде этого:
String.prototype._id = function () {
return String.prototype.valueOf()
}
Независимо от того, насколько плоха идея - на которую уже отвечали другие вопросы, - будет ли это способом сделать это, и где я должен это объявить? Есть ли лучший способ решения этой проблемы?
Спасибо.
PS. Я знаю, что мог бы также перезаписать метод toString
в своем классе Address
и получить аналогичный результат, вызвав customer.address.toString()
, чтобы получить _id
, но я чувствую, что он не читается, и я хотел бы изучить другие варианты первый.