我正在使用 Angular v8。我有一个名为 model.ts 的文件,如下所示。
import {map} from 'rxjs/operators';
export class Person {
constructor() { }
}
然后我有一个名为 test.worker.ts 的 WebWorker 文件,如下所示。
/// <reference lib="webworker" />
import {Person} from './bo/model';
addEventListener('message', ({ data }) => {
const response = `worker response to ${data}`;
postMessage(response);
});
当我输入ng compile 时,我得到以下ERROR。
./src/app/test.worker.ts (./node_modules/worker-plugin/dist/loader.js!./src/app/test.worker.ts) 中的错误
模块构建失败(来自 ./node_modules/worker-plugin/dist/loader.js):
错误:node_modules/rxjs/internal/types.d.ts(45,13):错误 TS2339:“SymbolConstructor”类型上不存在“可观察”属性。
在 AngularCompilerPlugin._update (/Users/jwayne/my-app/node_modules/@ngtools/webpack/src/angular_compiler_plugin.js:767:31)
在 processTicksAndRejections (internal/process/task_queues.js:89:5)
在异步 AngularCompilerPlugin._make (/Users/jwayne/my-app/node_modules/@ngtools/webpack/src/angular_compiler_plugin.js:658:13)
如果我注释掉import {map} from 'rxjs/operators',那么我可以编译。导入其他库的库是否有限制?
有趣的是,如果我这样做 import import {HttpClient} from '@angular/common/http'; 然后我得到一个不同的错误,如下所示。
./src/app/test.worker.ts 中的错误 (./node_modules/worker-plugin/dist/loader.js!./src/app/test.worker.ts)
模块构建失败(来自 ./node_modules/worker-plugin/dist/loader.js):
错误:node_modules/@angular/core/core.d.ts(1470,29):错误 TS2304:找不到名称“元素”。
node_modules/@angular/core/core.d.ts(1471,29):错误 TS2304:找不到名称“元素”。
node_modules/@angular/core/core.d.ts(1538,26):错误 TS2304:找不到名称“节点”。
node_modules/@angular/core/core.d.ts(1539,29):错误 TS2304:找不到名称“节点”。
node_modules/@angular/core/core.d.ts(7082,33):错误 TS2304:找不到名称“节点”。
node_modules/@angular/core/core.d.ts(8711,81):错误 TS2304:找不到名称“HTMLElement”。
node_modules/@angular/core/core.d.ts(8822,15):错误 TS2304:找不到名称“HTMLElement”。
node_modules/@angular/core/core.d.ts(9753,62):错误 TS2304:找不到名称“元素”。
node_modules/@angular/core/core.d.ts(9755,62):错误 TS2304:找不到名称“节点”。
node_modules/@angular/core/core.d.ts(9778,59):错误 TS2304:找不到名称“元素”。
node_modules/@angular/core/core.d.ts(9820,82):错误 TS2304:找不到名称“HTMLElement”。
node_modules/@angular/core/core.d.ts(10214,83):错误 TS2304:找不到名称“HTMLElement”。
node_modules/@angular/core/core.d.ts(12863,20):错误 TS2304:找不到名称“文档”。
node_modules/@angular/core/core.d.ts(12866,13):错误 TS2304:找不到名称“HTMLElement”。
node_modules/@angular/core/core.d.ts(12874,20):错误 TS2304:找不到名称“文档”。
node_modules/@angular/core/core.d.ts(12877,13):错误 TS2304:找不到名称“文档”。
node_modules/@angular/core/core.d.ts(12885,20):错误 TS2304:找不到名称“文档”。
node_modules/@angular/core/core.d.ts(12888,13):错误 TS2304:找不到名称“窗口”。
在 AngularCompilerPlugin._update (/Users/jwayne/my-app/node_modules/@ngtools/webpack/src/angular_compiler_plugin.js:767:31)
在 processTicksAndRejections (internal/process/task_queues.js:89:5)
在异步 AngularCompilerPlugin._make (/Users/jwayne/my-app/node_modules/@ngtools/webpack/src/angular_compiler_plugin.js:658:13)
更有趣的是,如果 import import {Observable, of} from 'rxjs'; 那么我绝对不会出错!这是怎么回事?
请注意,我使用的是 ng-cli v8.0.2。