gpt4 book ai didi

typescript - 如何解决/抑制 IntelliJ 警告,即模拟类未在任何 Angular 模块中声明?

转载 作者:行者123 更新时间:2023-12-04 01:40:14 25 4
gpt4 key购买 nike

我有一个 Angular 8 应用程序,我试图在其中模拟一些子组件。

mock 本身很好。但是,为了组织和可重用性,我想将模拟从 .spec 文件中移出并移到它自己的模拟目录中,如下所示

myApp
|-- src
|-- app
|-- app.component.spec.ts
|-- mocks
|-- material
|-- mat-drawer-container.ts

MaterialDrawerContainer 的模拟如下所示:
import {Component, Input} from '@angular/core';

@Component({
selector: 'mat-drawer-container',
template: ''
})

export class MockMatDrawerContainer {
@Input() mode;
}

测试本身仍然按预期工作。但令人讨厌的是,MockMatDrawerContainer 下面有一条很大的旧红线提示“MockMatDrawerContainer 未在任何角度模块中声明”,即使它在测试平台配置测试模块中使用,如下所示:
TestBed.configureTestingModule(
{declarations: [MockMatDrawerContainer]}).compileComponents;

我找到了关于“在更改时编译”的 stackoverflow 建议以及对 tsconfig.app.json 的相关更改以进行 compileOnSave,但除了在模拟目录中创建一个虚假的 ngModule 之外没有任何帮助,这看起来很愚蠢。

有什么智慧之言吗?

最佳答案

虽然您是正确的,但正如您在回答中提到的那样,您不应该为 Angular 项目禁用所有此类检查,但禁用对测试模拟的检查绝对是一个有效的用例。
这些警告来自 IDEA 检查(IntelliJ 和 Webstorm)。
禁用任何检查(针对任何类型的项目) :

  • 将光标放在有问题的代码(下划线)
  • Alt-Enter
  • 选择验货
  • “禁课”

  • 在这种情况下,这将添加注释:
    // noinspection AngularMissingOrInvalidDeclarationInModule

    关于typescript - 如何解决/抑制 IntelliJ 警告,即模拟类未在任何 Angular 模块中声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57794398/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com