web-dev-qa-db-ja.com

Angular 2: "同様のタイプまたは任意のオペラントであると予想されました" lintingエラー

私はこれに似た変数を定義する共有サービスファイルを持っています:

export class SharedService {
    activeModal: String;
}

次に、サービスをインポートして定義するコンポーネントファイルがあります。

constructor(public sharedService: SharedService) {
}

そのコンポーネントのテンプレートファイルで、モーダルの値を確認します。

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

すべて正常に機能しますが、エディターでは、sharedService.activeModal === 'login'部分の下に赤い波線が表示され、その上にカーソルを合わせると、このリンティングエラーが表示されます。

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

私が間違っていることは何ですか?

8
yodalr

stringの宣言で、小文字のString(ラッパーオブジェクトタイプactiveModalではなくプリミティブ)を試してください。

12
Matt McCutchen

同じエラーを持っているが解決策が適用されないものについては、列挙型と文字列を比較していないことを確認してください。

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

およびhtml

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

余分なタイプを追加する場合は、将来のエラーを削除するように設定できます

activeModal: any 
0