- do not use the .d.ts files coming in from gulp-tsb
- remove the generation of .d.ts files
- run before compilation starts
- install file watchers directly
Upgrades our build scripts to target ES2017 since they are run on modern versions of node
This allows us to remove shims for es6 features such as `Object.assign`, and also remove a few extra typings packages
Part of #60565
Adds a new `tsconfig.strictNullChecks.json` project that does not emit anything and is only used for enabling strict null checks on a subset of the vscode codebase.
Opt `iterator.ts` into strict null checking.
Fix our build scripts to properly handle `extends`
Using a custom version of the node typings is causing a lot of pain while trying to upgrade our build to use `@types` instead of the `d.ts` files we have to maintain. I believe we primarily maintain our own version for two reason:
- Custom require function
- setTimeout and other timer functions return NodeJs.timer instead of a number
These can both be delt with, the first by using interface augmentation and the second by switching to use any types for timer. I believe that the pain of maintaining our own node `d.ts` outweighs the benefits here
This change switches us to use the standard @types/node package for our node typings