node.js - 从 Angular 9 升级到 Angular 11 后,类型上不存在错误属性“emit”
问题描述
我最近将我的 Angular 库从 Angular 9 升级到 Angular 11,它抛出一个错误 Property 'emit' does not exist on type A
export class A extends B {
protected method1() {
this.emit(); // this is where the error is thrown
}
}
以下是我的A类
import { EventEmitter } from 'events';
export abstract class B extends EventEmitter {
}
以下是我的 package.json
"dependencies": {
"@angular/animations": "^11.2.14",
"@angular/cdk": "^11.2.13",
"@angular/common": "^11.2.14",
"@angular/compiler": "^11.2.14",
"@angular/core": "^11.2.14",
"@angular/forms": "^11.2.14",
"@angular/material": "^11.2.13",
"@angular/platform-browser": "^11.2.14",
"@angular/platform-browser-dynamic": "^11.2.14",
"@angular/router": "^11.2.14",
"@egjs/hammerjs": "^2.0.17",
"@fortawesome/angular-fontawesome": "^0.6.1",
"@fortawesome/fontawesome-svg-core": "^1.2.28",
"@fortawesome/free-brands-svg-icons": "^5.13.0",
"@fortawesome/free-regular-svg-icons": "^5.13.0",
"@fortawesome/free-solid-svg-icons": "^5.13.0",
"@ng-bootstrap/ng-bootstrap": "^7.0.0",
"ace-builds": "^1.4.9",
"bootstrap": "^4.5.0",
"cytoscape": "^3.14.1",
"cytoscape-cise": "^1.0.0",
"cytoscape-cola": "^2.3.0",
"cytoscape-cose-bilkent": "^4.1.0",
"cytoscape-dagre": "^2.2.2",
"cytoscape-fcose": "^1.2.1",
"keycharm": "^0.2.0",
"moment": "^2.24.0",
"rxjs": "^6.5.5",
"time-ago-pipe": "^1.3.2",
"tslib": "^2.0.0",
"vis-data": "^7.0.0",
"vis-network": "^8.0.0",
"vis-util": "^4.3.4",
"zone.js": "^0.10.3"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.1102.14",
"@angular/cli": "^11.2.14",
"@angular/compiler-cli": "^11.2.14",
"@angular/language-service": "^11.2.14",
"@semantic-release/changelog": "^5.0.1",
"@semantic-release/git": "^9.0.0",
"@types/cytoscape": "^3.14.0",
"@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.12.35",
"codelyzer": "^6.0.0",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~5.0.0",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-edgium-launcher": "^4.0.0-0",
"karma-firefox-launcher": "^1.3.0",
"karma-ie-launcher": "^1.0.0",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"karma-junit-reporter": "^2.0.1",
"karma-spec-reporter": "0.0.32",
"ng-bullet": "^1.0.3",
"ng-packagr": "^11.0.0",
"protractor": "~7.0.0",
"puppeteer": "^5.5.0",
"semantic-release": "^17.1.1",
"ts-node": "~7.0.0",
"tslint": "~6.1.0",
"typescript": "~4.1.6"
},
下面的 emit() 函数在 Angular 版本 9 上运行良好,但在迁移到 Angular 11 后,它开始抛出错误。有人可以帮我解决这个问题并解释为什么会这样吗?
解决方案
推荐阅读
- mongodb - mongodb聚合管道没有返回正确的结果并且速度很慢
- double - 从字符串转换为双精度的问题
- android - java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.TextView.setText(java.lang.CharSequence)'
- macos - macOS Catalina AudioServerPlugIn 安装
- json - 如何从 json 文件生成类图或 UML
- windows - 将环境变量从命令行传递给纱线
- css - Angular2 - 为什么 :host 不会随着 Safari 中的内容垂直增长?
- date - Hive 中的日期和时区
- postgresql - PostgreSQL 营销报告
- java - 将 org.apache.avro.util.Utf8 转换为 java.lang.String