我正在构建一个用TypeScript编写的Chrome扩展。我正在使用WebStorm,并在我的项目中添加了chrome-DefiniteltyTyped
库。
然而,当我在我的typescript代码中写这段代码时:chrome.extension.getURL
我得到一个错误:cannot find name 'chrome'
。
正因为如此,我的JavaScript文件没有生成,我不能在我的扩展中使用它。
你们有什么办法吗?
我正在构建一个用TypeScript编写的Chrome扩展。我正在使用WebStorm,并在我的项目中添加了chrome-DefiniteltyTyped
库。
然而,当我在我的typescript代码中写这段代码时:chrome.extension.getURL
我得到一个错误:cannot find name 'chrome'
。
正因为如此,我的JavaScript文件没有生成,我不能在我的扩展中使用它。
你们有什么办法吗?
8条答案
按热度按时间bcs8qyzn1#
从typescript 2(或2.x,不确定)开始,您应该从@types导入chrome类型。
在package.json中:
在tsconfig中:
gywdnpxw2#
这应该可以正常工作:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/chrome/index.d.ts
提示:确保添加了
reference
标记:/// <reference path="pathTo/chrome.d.ts"/>
dgiusagp3#
Chrome和Firefox的类型
由于Chrome和Firefox的扩展API现在基本相同,因此您可以在两种情况下使用
@types/chrome
。xlpyo6sf4#
你只需要安装类型定义就可以了,下面我们来安装一下:
或NPM
现在使用免费的错误!
lh80um4z5#
我在VS Code中尝试使用TypeScript开发Chrome扩展时遇到了下面的错误,我所要做的就是简单地运行:
npm install --save-dev @types/chrome
这将输入 "@types/chrome”:package.json 文件中 “devDependencies” 下的“0.0.120”。
修复错误:
[tsl]C:\Users\my_user\Documents\my_chrome_extension\src\content.ts(28,3)中出现错误TS 2304:找不到名称“chrome”。
njthzxwz6#
什么工作:
让typescript忽略这些违规代码,在上面添加这样的注解。
// @ts-ignore: saying 'chrome' is not found
什么不起作用:
背景:
我正在使用Angular 11开发一个Chrome扩展。我需要访问chrome.runtime.sendMessage来向后台工作程序发送信息。
jslywgbw7#
确保你安装了@types/chrome。我认为你不需要更新tsconfig的类型和类型根。然后通过访问全局可用的chrome类型来使用chrome中的类型定义,例如:
A bit more context in this GitHub issue
oxiaedzo8#
这也是我在VS Code中遇到的问题。
我在子目录中有一个TS项目,即:
尽管安装了
@types/chrome
,我还是得到了同样的错误。幸运的是,我注意到VS Code没有在子目录中找到我的
tsconfig.json
。当我直接打开/project/TS_folder
时,即让TS_folder
成为VS Code窗口的根,所有错误都消失了。VS Code missing
tsconfig.json
截图:不幸的是,在VS Code中,它是超级可定制的编辑器,没有办法显式地指定
tsconfig.json
的路径。Issue有很大的吸引力,但现在已经锁定了相当长的一段时间。