当我try 使用web workers时,我在正确编译我的打字脚本方面遇到了一些问题.

我对工人的定义如下:

onmessage = (event:MessageEvent) => {
  var files:FileList = event.data;
    for (var i = 0; i < files.length; i++) {
        postMessage(files[i]);
    }
};

在我的应用程序的另一部分中,我使用webpack worker loader加载我的worker,如下所示:let Worker = require('worker!../../../workers/uploader/main');

然而,当应用程序必须传输时,我在使typescript声明不要对我大喊大叫方面遇到了一些问题.

{
     "compilerOptions": {
          "lib": [
               "webworker",
               "es6",
               "dom"
          ]
     }
}

现在,当我运行webpack让它构建所有内容时,我会遇到一系列错误,比如:C:/Users/hanse/Documents/Frontend/node_modules/typescript/lib/lib.webworker.d.ts:1195:13 Subsequent variable declarations must have the same type. Variable 'navigator' must be of type 'Navigator', but here has type 'WorkerNavigator'.

所以我的问题是:如何指定webworker使用lib.网络工作者.d、 ts定义和其他一切都遵循正常定义?

推荐答案

在您的tsconfig.json文件中,在compilerOptions中设置:

{
    "compilerOptions": {
        "target": "es5",
        //this config for target "es5"
        "lib": ["webworker", "es5", "scripthost"]
        //uncomment this for target "es6"
        //"lib": ["webworker", "es6", "scripthost"]
    }
}

Web工作人员无法访问DOM、windowdocumentparent对象(此处完整列出支持的对象:Functions and classes available to Web Workers);TypeScript的dom库不兼容,因此重新定义了lib.webworker.d.ts中定义的一些元素

Typescript相关问答推荐

根据第一个参数的值设置第二个参数的类型

如何在另一个if条件中添加if条件

如何使用Generics保留构造函数的类型信息?

当使用`type B = A`时,B的类型显示为A.为什么当`type B = A时显示为`any `|用A代替?

类型脚本泛型最初推断然后设置

在配置对象上映射时,类型脚本不正确地推断函数参数

打印脚本丢失函数的泛型上下文

使用TypeScrip根据(可选)属性推断结果类型

如何表示多层深度的泛型类型数组?

基于泛型的条件接口键

如何创建由空格连接的多个字符串的类型

如何使这种一对一关系在旧表上起作用?

创建一个TypeScrip对象并基于来自输入对象的约束定义其类型

作为函数参数的联合类型的键

如何键入并类型的函数&S各属性

如何将通用接口的键正确设置为接口的键

在REACT查询中获取未定义的isLoading态

Typescript泛型调用对象';s方法

传入类型参数<;T>;变容函数

如何让Record中的每个值都有独立的类型?