为什么 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/