我正在尝试使用TypeScript开发Chrome扩展程序。我已经安装了@ types / chrome,一切看起来都井井有条。
现在我想使用chrome-extension-async提供chrome扩展对象的Promisified版本,允许我进行异步/等待。
但我似乎无法弄清楚如何启用此扩展程序。文档只是说我应该添加一个指向扩展名的js文件的<script>
。我的Chrome扩展程序没有HTML网页,因此没有<script>
标记。
更新:
按照@ basarat的建议,我已经停止使用@ types / chrome并将chrome-extension-async.d.ts
添加到我的tsconfig中。打字稿现在不抱怨,但Chrome确实如此。 Chrome会看到旧的Chrome命名空间,而不是被覆盖的命名空间,所以当它看到没有回调的chrome.storage.sync.get
来电时,就会抱怨。
如果我导入扩展程序,请使用类似
的内容 import * as chromeAsync from "chrome-extension-async"
;
导入有效,但我不能await chrome.storage.sync.get('field)
因为TypeScript抱怨(非常正确)我没有通过回调。
我真的被困在这里。
答案 0 :(得分:1)
导入有效,但我无法等待chrome.storage.sync.get(&#39;字段)因为TypeScript抱怨(非常正确)我没有通过回调。
请勿使用@types/chrome
,而是使用https://github.com/KeithHenry/chromeExtensionAsync/blob/master/chrome-extension-async.d.ts
答案 1 :(得分:0)
函数也是TypeScript中的一个对象,您可以创建任何&#39; any&#39;类型的对象。这样做它将接受你传递给这个函数的任何参数。
尝试: 的&LT;任何&GT;(chrome.storage.sync.get)()强>