Ich versuche, eine Chrome-Erweiterung in TypeScript zu entwickeln. Ich habe @ types/chrome installiert und alles schien in Ordnung zu sein.Überschreiben von Typdefinitionen in TypeScript
Jetzt möchte ich chrome-extension-async verwenden, die eine Promisified-Version der Chrome-Erweiterung Objekte zur Verfügung stellt, so dass ich Async/erwarten.
Ich kann jedoch nicht herausfinden, wie diese Erweiterung aktiviert wird. Die Dokumentation sagt nur, dass ich eine <script>
hinzufügen sollte, die auf die js-Datei der Erweiterung verweist. Meine Chrome-Erweiterung hat keine HTML-Seiten, daher gibt es kein <script>
-Tag.
UPDATE: Nach dem Ratschlag von @basarat habe ich aufgehört, @ types/chrome zu verwenden und fügte chrome-extension-async.d.ts
in meine tsconfig ein. Typescript beschweren sich jetzt nicht, aber Chrome tut es. Chrome sieht den alten Chrom-Namespace, nicht den überschriebenen. Wenn er einen chrome.storage.sync.get
-Aufruf ohne Rückruf sieht, beschwert er sich.
Wenn ich importieren Sie die Erweiterung, mit so etwas wie
import * as chromeAsync from "chrome-extension-async"
;
der Import funktioniert, aber ich kann nicht await chrome.storage.sync.get('field)
, weil TypeScript (zu Recht) beschwert, dass ich keinen Rückruf weitergeben.
Ich bin wirklich hier fest.
I @ types/Chrom deinstalliert haben und hinzugefügt, um die Chrom-Erweiterung-async.d.ts auf meine Dateien in tsconfig.json. Jetzt meldet sich Typoskript nicht mehr, aber Chrome tut es - Chrome sieht Chrome-Extension-Async überhaupt nicht und beschwert sich, dass ich keinen Callback übergebe. – zmbq