Open albertor24 opened 1 year ago
~I don't think we want to add overhead to runtime checking, so I'm marking this as a documentation issue, we should explicitly state that we are creating private underscore properties and that they should not be overwritten.~
After some discussion with maintainers it seems that a potential solution is to use Symbol
this may however have perf implications.
🐛 Bug Report
When creating an
@observable
property, an implicit property with the same name prefixed with underscore will be created. Moreover, if an explicit underscore-prefixed property is declared alongside a non-prefixed property, they will overwrite each other💻 Repro or Code Sample
https://stackblitz.com/edit/typescript-j2eqbm?file=index.ts
🤔 Expected Behavior
The template should show
Just my prop
😯 Current Behavior
The template shows
My prop with underscore
💁 Possible Solution
If it's necessary to create these implicit properties, an error should be raised if a property with underscore is explicitly defined.
🔦 Context
🌍 Your Environment