What is @types/chrome?
@types/chrome provides TypeScript definitions for the Chrome extension APIs, allowing developers to write Chrome extensions with type safety and autocompletion in TypeScript.
What are @types/chrome's main functionalities?
Tabs API
The Tabs API allows you to interact with the browser's tab system. This example demonstrates how to create a new tab and log the details of the created tab.
chrome.tabs.create({ url: 'https://www.example.com' }, (tab) => { console.log('New tab created:', tab); });
Storage API
The Storage API provides a way to store, retrieve, and track changes to user data. This example shows how to set a value in the storage.
chrome.storage.sync.set({ key: 'value' }, () => { console.log('Value is set to 'value''); });
Runtime API
The Runtime API allows you to manage your extension's lifecycle events. This example demonstrates how to listen for the installation event of the extension.
chrome.runtime.onInstalled.addListener(() => { console.log('Extension installed'); });
Alarms API
The Alarms API allows you to schedule code to run at a specific time in the future. This example shows how to create an alarm and listen for when it triggers.
chrome.alarms.create('myAlarm', { delayInMinutes: 1 }); chrome.alarms.onAlarm.addListener((alarm) => { console.log('Alarm triggered:', alarm); });
Notifications API
The Notifications API allows you to create and manage notifications. This example demonstrates how to create a notification and log its ID.
chrome.notifications.create('notificationId', { type: 'basic', iconUrl: 'icon.png', title: 'Notification Title', message: 'Notification message' }, (notificationId) => { console.log('Notification created:', notificationId); });
Other packages similar to @types/chrome
webextension-polyfill
The webextension-polyfill package provides a cross-browser API for developing browser extensions. It offers a promise-based API that is consistent across different browsers, making it easier to write extensions that work in Chrome, Firefox, and other browsers. Unlike @types/chrome, which is specific to Chrome, webextension-polyfill aims to provide a unified API for multiple browsers.
chrome-types
The chrome-types package is another set of TypeScript definitions for the Chrome extension APIs. It is similar to @types/chrome but may have different update cycles and community support. Both packages serve the same purpose of providing type definitions for Chrome's extension APIs.
Installation
npm install --save @types/chrome
Summary
This package contains type definitions for Chrome extension development (http://developer.chrome.com/extensions/).
Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/chrome.
Additional Details
Credits
These definitions were written by Matthew Kimber, otiai10, sreimer15, MatCarlson, ekinsol, Brian Wilson, Sebastiaan Pasma, bdbai, pokutuna, Jason Xian, userTim, Idan Zeierman, Nicolas Rodriguez, Ido Salomon, and Federico Brigante.