diff --git a/README.md b/README.md index 8a29efb..bf071ee 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ Table of contents * [Usage with webpack without bundling](#usage-with-webpack-without-bundling) * [Using the Promise-based APIs](#using-the-promise-based-apis) * [Examples](#examples) +* [Usage with TypeScript](#usage-with-typescript) * [Known Limitations and Incompatibilities](#known-limitations-and-incompatibilities) * [Contributing to this project](#contributing-to-this-project) @@ -324,6 +325,16 @@ browser.runtime.onMessage.addListener(async function(msg) { Or vice versa. +## Usage with TypeScript + +There are multiple projects that add TypeScript support to your web-extension project: + +| Project | Description | +| ------------- | ------------- | +| [webextension-polyfill-ts](https://github.com/Lusito/webextension-polyfill-ts) | Types and JS-Doc are automatically generated from the mozilla schema files, so it is always up-to-date with the latest APIs. It also bundles the webextension-polyfill for very simple usage. | +| [web-ext-types](https://github.com/kelseasy/web-ext-types) | Manually maintained types based on MDN's documentation. No JS-Doc included. | +| [@types/chrome](https://www.npmjs.com/package/@types/chrome) | Manually maintained types and JS-Doc. Only contains types for chrome extensions though! | + ## Known Limitations and Incompatibilities This library tries to minimize the amount of "special handling" that a cross-browser extension has to do to be able to run on the supported browsers from a single codebase, but there are still cases when polyfillling the missing or incompatible behaviors or features is not possible or out of the scope of this polyfill.