javascript - vscode Service Worker 接口(interface)对象自动完成

标签 javascript visual-studio-code service-worker

为什么 vscode 看不到 Service Worker 接口(interface)对象?
lack of auto completion
虽然浏览器显示它们仍然存在
presence of object logged in browser
如何解决这个问题?

整个服务 worker 代码:

self.addEventListener('install', event => {
    console.log('V1 installing…');
    event.waitUntil(
        caches.open('static-v1').then(cache => cache.add('/cat.png'))
    );
});

self.addEventListener('activate', event => {
    console.log('V1 now ready to handle fetches!');
});

self.addEventListener('fetch', event => {
    const url = new URL(event.request.url);
    if (url.origin == location.origin && url.pathname == '/dog.png') {
        event.respondWith(caches.match('/cat.png'));
    }

    if (url.origin == location.origin) {
        console.log("Clients object: ", clients);
    }
});

最佳答案

最简单的方法是使用 JSDOC 语法

/**@type {ServiceWorkerGlobalScope} sw */
const sw = self

并在代码中使用该常量。

sw.addEventListener('install', (ev) => {
  // the event argument will have ServiceWorker specific intellisense
  ev.wait
})

排除默认库,例如与“webworker”冲突的“dom”

在文件顶部添加

/// <reference no-default-lib="true"/>
/// <reference lib="esnext" />
/// <reference lib="webworker" /> 

关于javascript - vscode Service Worker 接口(interface)对象自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48128485/

相关文章:

visual-studio-code - VSCode 任务将命令包装在 ' ' 引号中,在多行命令上破坏了参数

javascript - 检测网络入门工具包中通知的点击

JavaScript 正则表达式 : how to create a single matching group

javascript - 如何使用第二个变量对重复值进行一致的排序? [javascript]

visual-studio-code - 我可以使用 VS Code 批量编辑多个文件吗?

visual-studio-code - 更改 Visual Studio Code 的标题栏颜色

vue.js - 通知 App.vue 正在调用 Service-Worker 事件

javascript - 如何从 Spring 客户端应用程序更新 Service Worker 中的语言

javascript - 所有 Mongoose 模型方法都是基于 promise 的吗?

javascript - 将参数附加到现有 URL 会导致无限循环