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 --devorpnpm add @types/web --dev. -
Update your
tsconfig.json. There are two cases to consider depending on if you havelibdefined in yourtsconfig.jsonor 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}}.