【问题标题】:Angular 2: "Expected the operants to be of similar type or any" linting errorAngular 2:“期望操作符具有相似类型或任何”linting 错误
【发布时间】:2019-01-15 02:11:08
【问题描述】:

我有一个共享服务文件,它定义了一个像这样的变量:

export class SharedService {
    activeModal: String;
}

然后我有一个导入服务并定义它的组件文件:

constructor(public sharedService: SharedService) {
}

在该组件的模板文件中,我检查了模式的值:

<div *ngIf="sharedService.activeModal === 'login'"></div>

一切正常,但在编辑器中,sharedService.activeModal === 'login' 部分在它下面有一条红色波浪线,将鼠标悬停在它上面会显示以下 linting 错误:

[Angular] Expected the operants to be of similar type or any
property sharedService of ModalComponent

任何想法我做错了什么?

【问题讨论】:

  • 不使用 Angular 的人的猜测:在 activeModal 的声明中尝试小写 string
  • 谢谢,这解决了问题。如果您在主线程中回答它,我会接受它作为答案。

标签: angular typescript eslint


【解决方案1】:

activeModal 的声明中尝试小写string(原语,而不是包装对象类型String)。

【讨论】:

    【解决方案2】:

    对于那些有相同错误但解决方案不适用于您的人,请确保您没有将枚举与字符串进行比较,如果是这样,请为您的班级创建一个成员并将枚举分配给它,这样您就有了:

    class LalaComponent {
      someEnum = SomeEnum;
      randomValue: SomeEnum;
    }
    

    在html中

    <ng-container *ngIf="randomValue === someEnum.option1" >
    </ng-container>
    

    【讨论】:

      【解决方案3】:

      如果你想添加额外的类型,你可以设置删除任何未来的错误

      activeModal: any 
      

      【讨论】:

        猜你喜欢
        • 2019-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-22
        • 2012-06-18
        • 2012-05-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多