This module contains the DOM types for the majority of the web APIs used in a web browser.
The APIs inside @types/web
are generated from the specifications for CSS, HTML and JavaScript. Given the size and state of constant change in web browsers, @types/web
only has APIs which have passed a certain level of standardization and are available in at least two different browser engines.
@types/web
is also included inside TypeScript, available as dom
in the lib
section and included in projects by default. By using @types/web
you can lock your the web APIs used in your projects, easing the process of updating TypeScript and offering more control in your environment.
To use @types/web
you need to do two things:
-
Install the dependency:
npm install @types/web --save-dev
,yarn add @types/web --dev
orpnpm add @types/web --dev
. -
Update your
tsconfig.json
. There are two cases to consider depending on if you havelib
defined in yourtsconfig.json
or not.- Without "lib" - You will need to add
"lib": []
. The value you want to add inside your lib should correlate to your"target"
. For example if you had"target": "es2017"
, then you would add"lib": ["es2017"]
- With "lib" - You should remove
"dom"
.
- Without "lib" - You will need to add
That's all.
This project does not respect semantic versioning as almost every change could potentially break a project, though we try to minimize removing types.
@types/web
follow the specifications, so when they mark a function/object/API/type as deprecated or removed - that is respected.
Prior to @types/web
the web APIs were deployed with a version of TypeScript, and backwards compatibility has not been a concern. Now the web APIs and TypeScript can be de-coupled, then we expect to eventually hit a point where we take backwards compatibility in mind. For now, @types/web
officially supports TypeScript 4.4 and above. It very likely will work with TypeScript versions much earlier that that however.
You can read what changed in version {{version}} at {{release_href}}.