0
目前,我試圖將現有的Google Chrome擴展程序遷移到Typescript。 它在後臺腳本中使用'webextension-polyfill'庫,但是在npm中沒有這個庫的定義。無法爲'webextension-polyfill'庫獲取工作類型打字稿
我有以下的 'webextension-polyfill.d.ts' 文件
interface Window {
browser: typeof browser;
}
declare namespace browser.tabs {
export function create(createProperties: chrome.tabs.CreateProperties): Promise<void>
export function query(queryInfo: chrome.tabs.QueryInfo): Promise<chrome.tabs.Tab[]>
}
declare namespace browser.windows {
export function getAll(getInfo: chrome.windows.GetInfo): Promise<chrome.windows.Window[]>
export function create(window?: chrome.windows.CreateData): Promise<void>
}
我進口的樣子:
import 'webextension-polyfill';
而且代碼利用圖書館的樣子:
function createTab(url: string) {
browser.tabs.create({url: url}).then(...)
}
它編譯成功,但我得到運行時錯誤:
Uncaught TypeError: Cannot read property 'tabs' of undefined
在DevTools中,我可以看到瀏覽器是未定義的。
我在做什麼錯?
請將[問題]置於主題上:包括[重複問題*的[mcve]]。對於Chrome擴展程序或Firefox Web擴展程序,幾乎總是需要包含* manifest.json *和一些背景,內容和/或彈出腳本/ HTML以及常用的網頁HTML /腳本。尋求調試幫助的問題(「爲什麼我的代碼不按我想要的方式工作?」)必須包括:(1)期望的行爲,(2)特定問題或錯誤,以及(3)重現它所需的最短代碼*在問題本身*。請參閱:[我可以在這裏詢問什麼主題?](/ help/on-topic)和[問]。 – Makyen
@Makyen我不認爲這是相關的... –
@akaSybe你所描述的錯誤實際上不是來自Typescript-這是瀏覽器告訴你,瀏覽器的價值沒有定義。 –