@orta/lib-dom-globals

An experiment in splitting the globals from the interfaces in the DOM types

Usage no npm install needed!

<script type="module">
  import ortaLibDomGlobals from 'https://cdn.skypack.dev/@orta/lib-dom-globals';
</script>

README

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.