Tri*_*hel 22 javascript google-chrome google-chrome-extension webstorm typescript
我正在构建一个用TypeScript编写的chrome扩展.我正在使用WebStorm,我chrome-DefiniteltyTyped在项目中添加了库.
但是,当我在我的打字稿代码中写这个时:chrome.extension.getURL
我收到了一个错误:cannot find name 'chrome'.
因此,我的javascript文件未生成,我无法在我的扩展程序中使用它.
你们有什么解决方案吗?
dfl*_*dfl 30
从typescript 2(或2.x,不确定)开始,您应该从@types导入chrome类型.
在package.json中:
"devDependencies": {
...
"@types/chrome": "0.0.35", // or just npm install --save-dev @types/chrome
Run Code Online (Sandbox Code Playgroud)
在tsconfig中:
"types": [
//(various types, e.g. jquery, core-js),
"chrome"
]
Run Code Online (Sandbox Code Playgroud)
bas*_*rat 25
这应该工作正常:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/chrome/index.d.ts
提示:确保reference添加了标记:
/// <reference path="pathTo/chrome.d.ts"/>
Blo*_*gic 13
您只需要安装类型定义即可使其工作,让我们安装它:
yarn add @types/chrome --dev
Run Code Online (Sandbox Code Playgroud)
或 NPM
npm install @types/chrome --save-dev
Run Code Online (Sandbox Code Playgroud)
现在使用没有错误!
Ben*_*ing 11
由于扩展 API 现在在 Chrome 和 Firefox 中基本相同,因此您可以@types/chrome在这两种情况下使用。
1.安装
yarn add @types/chrome --dev
Run Code Online (Sandbox Code Playgroud)
2.更新tsconfig
yarn add @types/chrome --dev
Run Code Online (Sandbox Code Playgroud)
3.获取浏览器api函数
{
"compilerOptions": {
....
"types": ["chrome"]
}
}
Run Code Online (Sandbox Code Playgroud)