0
我正在嘗試從Angular2 Typescript Chrome擴展程序中獲取當前顯示的網址。 我已閱讀this以獲得url,並且this有關如何在Ts中調用Js函數。 我也在我的tsconfig.json中將allowJs設置爲true。在Typescript中獲取Chrome的當前域名
這裏是我的代碼:
ngOnInit(){
declare var tabs = chrome.tabs.query({params...},function(tabs) {
return tabs[0];
});
console.log(tabs());
}
這並不編譯,除非我刪除日誌。
我也試過不使用function expression call:
declare chrome.tabs.query({'active': true, 'windowId': chrome.windows.WINDOW_ID_CURRENT},
function(tabs){}
);
但它並沒有在所有的工作。 我想知道它是否可以是異步相關的,因爲代碼是在OnInit中。
任何想法?
謝謝!
爲什麼你使用'declare'?我很確定這不是你想要的。聲明一個變量意味着「這個名稱和類型有一個變量,但是它是在別的地方定義的,所以不用擔心編譯器。」但在你的例子中,你正在賦值。 –
那麼,其中一個鏈接建議在調用Ts中的Js函數時這麼做。 – Stanislasdrg
有沒有真正的「從ts調用js」作爲打字稿是javascript的東西。問題在於編譯器不會識別'chrome.tabs.query',因爲它沒有爲它定義,所以你可以聲明它或者使用定義文件來爲你定義它。但是當你將這樣一個函數的結果分配給一個變量時,該變量不應該被聲明,而應該實際存在。 –