Fixes#270408
Trying to move some of the monaco related checks/tconfigs off of `moduleResolution: classic`. This legacy config is causing a lot of pain while trying to update the trusted-types typings, which is itself blocking picking up the latest dompurify
I initially tried a more scoped change but just could not get it working. So instead I ended up trying to rework our `LanguageServiceHost` to be more standard
* Introduces IObservableWithChange so that typescript does not show the default type for TChange in hovers.
This should make it easier to understand types when observables (potentially nested) are involved.
* Fixes monaco editor
* Remove most SyncDescriptorX forms
From what I can tell, `SyncDescriptor0` is the only one of these types still being used. In order to speed up TS's type checking around `createInstance`, I think it makes sense to remove the unused forms
* Remove `SyncDescriptorN` from tree shaker usages
Co-authored-by: Alex Dima <alexdima@microsoft.com>
Tree Shaking:
- do not proceed with tree shaking when there are compilation errors
- load .d.ts files in the language service
- adopt TS 3.1.1 in symbol resolution
- use the real tsconfig.json / with "node" resolution
Bundling:
- fix issue where files were being looked for in out-build instead of out-editor-build