A version of @types/web which has the types separated from the declaration of globals based on this diff with a bit of manual hand-holding by me.
Based on discussion in microsoft/TypeScript#43972.
Old:
var EventTarget: {
prototype: EventTarget;
new(): EventTarget;
};
Now:
interface EventTargetConstructor {
prototype: EventTarget;
new(): EventTarget;
}
var EventTarget: EventTargetConstructor
This library can be used like:
pnpm add @typescript/lib-dom@npm:@orta/lib-dom-globals --save-dev
npm install @typescript/lib-dom@npm:@orta/lib-dom-globals --save-dev
yarn add @typescript/lib-dom@npm:@orta/lib-dom-globals --dev
Which will give other projects like node/deno etc the ability to do:
/// <reference lib="dom.types" />
Which resolves to ./types.d.ts
- which only contains the global type and no runtime declarations.
Here's an example of what this would look like in practice: