期望操作员为相似类型或任何角度

时间:2019-06-07 14:28:49

标签: html angular typescript

我遇到了找不到解决方案的问题enter image description here

我看到了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 }

3 个答案:

答案 0 :(得分:2)

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

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

我发现2个解决方案是像这样使用show={showTooltipPass.toString()}

localeCompare()

使用router.url.localeCompare('/successLogin')===0 代替String

答案 1 :(得分:0)

快速解决方案:

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)

答案 2 :(得分:0)

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