web-dev-qa-db-ja.com

識別子はコンポーネントのプライベートメンバーを参照します

。html

  <offline-picks *ngFor="let pick of pickData" [data]="pick"></offline-picks>

。ts

export class OfflineArticlesPage {
  private pickData: picksModel[] = [];
  constructor(private localCacheService: LocalCacheServiceProvider) {
  }
}

上記のprivate memberを使用した場合、以下のエラーが表示されます。 Angular Language Service 拡張機能を使用していますVS codeエディター。

[Angular]識別子 'pickData'はコンポーネントのプライベートメンバーを参照します

コンポーネント内でprivate membersを使用することは、良いプログラミングの実践ではないでしょうか?しかし、上記の問題の解決策として が拡張機能のレポ に関するコメントの下にあります。

言語サービスは、AOT中にエラーになるため、これらのエラーを発行します。最終的には、これらを解決する必要があります。

AOTの非公開および保護メンバーへのアクセスをサポートする計画がありますが、少なくとも6.0(来年の春)まで着陸しません。

コンポーネントでメンバーを宣言する最善の方法は何ですか?

更新:

最新のIonic ionic cordova run Android --prod --device"ionic-angular": "3.5.3", CLIコマンドを使用しますが、Androidデバイスで正常に動作します。 AOTでも問題ありませんか?では、なぜこのエラー(または実際に警告)なのでしょうか?

17
Sampath

publicが機能するためには、AoTでなければなりません。

詳細については、こちらをご覧ください: https://github.com/angular/angular/issues/11978

14
Amit