How to add properties to existing objects in TypeScript
declare global { interface Window { MyNamespace: any; } } window.MyNamespace = window.MyNamespace || {};
The above adds the MyNamespace property to window, by declaring that window (which implements/inherits from Window), has a property named MyNamespace.
See also: What does “variable = variable || {}” mean in JavaScript.
In 2017, with the release of Delphi 10.2 Tokyo, Embarcadero introduced a specialized implementation of the Observer pattern into the System.Classes unit. While it has been in the wild for 9 years, it remains a "hidden" architecture for many, primarily because it serves as the invisible engine behind LiveBindings. Other than live bindings, you can also use the Observer pattern as a way to update component settings to the Windows registry, an .ini file, or persist it elsewhere.
System.Classes