在TypeScript

时间:2017-12-04 22:50:24

标签: typescript asynchronous google-chrome-extension chrome-extension-async

我正在尝试使用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抱怨(非常正确)我没有通过回调。

我真的被困在这里。

2 个答案:

答案 0 :(得分:1)

  

导入有效,但我无法等待chrome.storage.sync.get(&#39;字段)因为TypeScript抱怨(非常正确)我没有通过回调。

请勿使用@types/chrome,而是使用https://github.com/KeithHenry/chromeExtensionAsync/blob/master/chrome-extension-async.d.ts

更多

来自文档enter image description here

答案 1 :(得分:0)

函数也是TypeScript中的一个对象,您可以创建任何&#39; any&#39;类型的对象。这样做它将接受你传递给这个函数的任何参数。

尝试: 的&LT;任何&GT;(chrome.storage.sync.get)()