Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] [Decorators] Cоздание вспомогательных свойств через Symbol + { enumerable: false } #81

Closed
1 of 7 tasks
AleksandrSibiakov opened this issue Mar 17, 2023 · 2 comments
Assignees
Labels
state:ready ready for release (pass tested)

Comments

@AleksandrSibiakov
Copy link
Contributor

Библиотека

  • @prizm-ui/core
  • @prizm-ui/components
  • @prizm-ui/install
  • @prizm-ui/icons
  • @prizm-ui/flag-icons
  • @prizm-ui/theme
  • @prizm-ui/charts

Компонент

decorators

Предложение

Typescript декораторы, такие как @observalbe, создают вспомогательные свойства, которые влияют на "форму" объекта в сценариях аля for ... in (перечисление свойств)

Предлагаю сделать ...
Дать возможность создавать доп. свойства не только через string (например как в примере с @observable - name?: string;), но и через Symbol, чтобы избежать коллизии. Так же считаю что доп. свойства следует по умолчанию создавать с флагом { enumerable: false }

@ZurabDev ZurabDev self-assigned this Mar 20, 2023
@ZurabDev ZurabDev added the state:in_progress We work on this issue label Mar 20, 2023
@ZurabDev
Copy link
Contributor

Добрый день. Речь идет о prizmObservable?

можете скинуть сценарий использования

@ZurabDev ZurabDev added the state:ready ready for release (pass tested) label Mar 21, 2023
@AleksandrSibiakov
Copy link
Contributor Author

Сценарий: мы создаем dirty$ поток для изменения свойства dirty нашего класса-аналога FormControl. К сожалению, пока ангуляр не предоставляет аналога statusChanges для этого свойства :(

В принципе, не то чтобы мы баги какие то ловили с прошлым поведением, просто по "common sense" я подумал это норм идея использовать символы и как то скрывать следы работы декораторов...

То что я вижу в PR - достаточно для закрытия!

@ZurabDev ZurabDev removed the state:in_progress We work on this issue label Mar 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
state:ready ready for release (pass tested)
Projects
Archived in project
Development

No branches or pull requests

2 participants