【问题标题】:Expected the operants to be of similar type or any Angular期望操作员具有相似类型或任何 Angular
【发布时间】:2019-10-23 01:47:37
【问题描述】:

我遇到了这个问题,我找不到解决方案

正如我看到的 router: Routerrouter.url: string。所以我找不到任何解释为什么当router.url === '/successlogin' 时它在 html 中抱怨。任何想法?

更新:我更改了路由器的类型,router.url: String,现在可以了,但我认为它应该相反。为什么会这样?到目前为止,我认为输入 string 是“正确的”,而不是 String...

我的代码简化了:

HTML

<div *ngIf="!global.showUnauthorizedMessage || router.url === '/successlogin'" class="beforeFooter"></div>
 <div *ngIf="!global.showUnauthorizedMessage || router.url ==='/successlogin'" id="footer">

组件

import { Router } from '@angular/router';
constructor( public router: Router) { code here }

【问题讨论】:

  • 您能否确认您在组件的构造函数中注入了Router?如果您将其设为public 而不是private,错误是否会改变(假设您已注入)?您的声明应该可以正常工作,而不会出现错误stackblitz.com/edit/angular-4e64me。你能显示你的组件代码吗?
  • CODEEEEEEEEE。没有代码,没有答案。
  • 你在哪里/怎么样Router.url: string?另请显示Router 的导入。
  • @AlexanderStaroselsky 这里的问题是,当我将router.d.ts 中的类型更改为String 时,警告消失了。

标签: html angular typescript


【解决方案1】:

有时它来自使用;

*ngIf="!somevalvar === somevar"

改为使用:

*ngIf="somevalvar !== somevar"

【讨论】:

    【解决方案2】:

    有同样的问题。我将类型从 String 更改为 string 并且错误消失了。

    【讨论】:

      【解决方案3】:

      此消息来自 VSCode 中的“Angular Language Service”扩展!

      可能是更新,因为之前我没有收到此消息....

      我找到的2个解决方案是像这样使用localeCompare()

      router.url.localeCompare('/successLogin')===0
      

      使用String 而不是string

      【讨论】:

      • 能把那些愚蠢的信息静音吗?我需要那个扩展,但我的强迫症不能忍受那些误报..更改代码不是一种选择..
      【解决方案4】:

      快速解决这个问题:

      a) 将“/successlogin”存储在某个变量中并与该变量进行比较

      组件

      import { Router } from '@angular/router';
      
      export class someComponent {
      
      successLogin = '/successlogin'; 
      
      constructor( public router: Router) { code here }
      }
      
      

      HTML

      <div *ngIf="!global.showUnauthorizedMessage || router.url === successLogin" class="beforeFooter"></div>
       <div *ngIf="!global.showUnauthorizedMessage || router.url === successLogin" id="footer">
      

      注意,因为这似乎是一个路径,理想情况下,它应该从一个常量文件中读取,以便于维护。

      干杯(y)

      【讨论】:

        猜你喜欢
        • 2019-01-15
        • 2014-09-01
        • 2012-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-10
        • 2019-09-23
        相关资源
        最近更新 更多