判断是否在Worker线程中
export const inWebWorker = (): boolean => {
return (
typeof global.postMessage !== "undefined" &&
typeof WorkerGlobalScope !== "undefined" &&
self instanceof WorkerGlobalScope
);
};
export const inSharedWorker = (): boolean =>
typeof SharedWorkerGlobalScope !== "undefined" && self instanceof SharedWorkerGlobalScope;
由于ServiceWorker相关类型位于 中lib.webworker.d.ts,因此webworker需要将 lib 添加到tsconfig.json.
{
"compilerOptions": {
"lib": [
"es2017",
"webworker"
]
}
}