Tìm kiếm trang web

node.js - phụ thuộc browser.d.ts cho các API tiện ích mở rộng web Edge browser.runtime.* trong typescript


Đối với tiện ích mở rộng Chrome được phát triển bằng TypeScript, chúng ta cần một tệp định nghĩa có tên chrome.d.ts trong thư mục typings để truy cập các API tiện ích mở rộng web như chrome.runtime.* hoặc chrome.tabs.*.

Đối với việc phát triển tiện ích mở rộng cho Edge bằng Typescript, chúng ta cần một file định nghĩa gọi là browser.d.ts trong thư mục typings để truy cập các API tiện ích web như browser.runtime.*

Chúng ta có thể tải xuống phụ thuộc này bằng trình quản lý gói node (npm) như thế nào. Tôi đã thêm một tham chiếu đến tệp trong tệp background.ts của tiện ích mở rộng như sau:

/// đường dẫn tham chiếu="typings/browser/browser.d.ts"

Câu trả lời #1

Cập nhật:

Các kiểu gõ có sẵn cho API trình duyệt của Firefox và thư viện polyfill trình duyệt của nó.

  • Firefox typings: npmjs.com/package/@types/firefox-webext-browser
  • Các kiểu cho polyfill trình duyệt: npmjs.com/package/webextension-polyfill-ts

Đáng tiếc, API trình duyệt của Edge không giống như của Firefox. Edge sử dụng callback trong khi Firefox sử dụng Promise. Điều này có thể hoặc không thể thay đổi.

Xem :

  • https://github.com/mozilla/webextension-polyfill/issues/3
  • https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9421085/

Câu trả lời #2

Vì bạn chỉ cần browser.d.ts để chuyển đổi kiểu dữ liệu, giải pháp này sẽ hoạt động

Bạn có thể thêm:

declare var browser: any;

ở đầu tệp của bạn nơi bạn đang sử dụng browser.runtime.

Bài viết liên quan