如何避免“dom”和“webworker”库之间的冲突?
Posted
技术标签:
【中文标题】如何避免“dom”和“webworker”库之间的冲突?【英文标题】:How to avoid conflict between "dom" and "webworker" libs? 【发布时间】:2019-02-21 23:29:39 【问题描述】:我正在将 TypeScript 与 React 一起使用,我想要实现的一件事是后台同步以提供离线支持。
要为 service worker 启用类型,我必须包含 WebWorker 库,但它与 DOM 库冲突并产生错误:
(25,1): Definitions of the following identifiers conflict with those in another file:
EventListenerOrEventListenerObject, BlobPart, HeadersInit, BodyInit,
RequestInfo, DOMHighResTimeStamp, PerformanceEntryList, PushMessageDataInit,
VibratePattern, BufferSource, DOMTimeStamp, FormDataEntryValue,
IDBValidKey, MessageEventSource, BinaryType, ClientTypes,
IDBCursorDirection, IDBRequestReadyState, IDBTransactionMode,
NotificationDirection, NotificationPermission, PushEncryptionKeyName,
PushPermissionState, ReferrerPolicy, RequestCache, RequestCredentials,
RequestDestination, RequestMode, RequestRedirect, ResponseType,
ServiceWorkerState, ServiceWorkerUpdateViaCache, VisibilityState,
WorkerType, XMLHttpRequestResponseType
所以我想知道除了输入我的大部分论点any
之外是否有任何解决方法。
【问题讨论】:
【参考方案1】:您可以使用单独的tsconfig.json
文件将您的项目拆分为多个部分:一部分包含dom
库,另一部分包含webworker
库。您可以为不依赖于任一库的通用代码制作另一部分。您可以使用project references 来帮助自动化构建。如果这不能完全解决问题,请更新问题以描述未解决的问题。
【讨论】:
感谢您的评论,Matt,我通读了文档并尝试实施您的建议。我遇到了一些问题,但觉得问题属于它自己的帖子,***.com/q/52437384/6683308(我对在互联网上提问很陌生,如果我应该以某种方式将这两个帖子结合起来,请告诉我)但感谢您的意见以上是关于如何避免“dom”和“webworker”库之间的冲突?的主要内容,如果未能解决你的问题,请参考以下文章
Webpack:Webworker 和 Web 代码之间共享代码的通用块?