我正在使用DomSanitizer
类做一些测试。我使用 git checkout -- .
撤消所有更改,但出现此控制台错误:
我签出到另一个 git 分支,错误仍然存在。
这是我的规格
Angular CLI: 6.2.8
Node: 8.12.0
OS: win32 x64
Angular: 6.1.10
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.8.8
@angular-devkit/build-angular 0.8.8
@angular-devkit/build-optimizer 0.8.8
@angular-devkit/build-webpack 0.8.8
@angular-devkit/core 0.8.8
@angular-devkit/schematics 0.8.8
@angular/cli 6.2.8
@ngtools/webpack 6.2.8
@schematics/angular 0.8.8
@schematics/update 0.8.8
rxjs 6.2.2
typescript 2.9.2
webpack 4.16.4
这是错误
ERROR in node_modules/@angular/core/src/sanitization/security.d.ts(32,3): error TS2300: Duplicate identifier 'by'.
node_modules/@angular/platform-browser/src/security/dom_sanitization_service.d.ts(83,31): error TS2720: Class 'DomSanitizer' incorrectly implements class 'Sanitizer'. Did you mean to extend 'Sanitizer' and inherit its members as a subclass?
Property 'by' is missing in type 'DomSanitizer'.
我没有在项目的任何地方使用DomSanitizer
,所以我不明白为什么我在运行ng serve
时会出现此错误
这是node_modules/@angular/platform-browser/src/security/dom_sanitization_service.d.ts
包含的内容:
export declare abstract class DomSanitizer implements Sanitizer {
我的文本编辑器抱怨implements
,我改成了extends
。
我收到一条新的错误消息:
ERROR in node_modules/@angular/core/src/sanitization/security.d.ts(32,3): error TS2300: Duplicate identifier 'by'.
这是node_modules/@angular/core/src/sanitization/security.d.ts
的内容
export declare abstract class Sanitizer {
by: any;
by: any;
abstract sanitize(context: SecurityContext, value: {} | string | null): string | null;
}
它包含两次by: any
属性,所以我删除了一个,它就像一个魅力。
有人可以解释为什么会发生这种情况吗?我不明白为什么node_modules
文件的内容会突然改变。
任何人都可以编写(和发布)节点模块。这意味着模块的作者可以随时随地更新或完全删除它。
然而,这很可能与 git 有关。请参阅行尾:Git 合并创建重复项而不会发生冲突,以获取更多信息。