web-dev-qa-db-fra.com

L'identifiant fait référence à un membre privé du composant

. html

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

. ts

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

Quand j'ai utilisé le private member comme indiqué ci-dessus, il montre l'erreur ci-dessous. J'utilise Angular Language Service extension sur VS code éditeur.

[Angular] L'identifiant 'pickData' fait référence à un membre privé du composant

J'espère utiliser private members l'intérieur du composant est une bonne pratique de programmation non? Mais comme une solution pour le problème ci-dessus a été donnée comme ci-dessous commentaire sur le dépôt de l'extension .

Le service linguistique émettra ces erreurs car ce seront des erreurs lors de l'AOT. Finalement, vous devrez les résoudre.

Nous avons des plans pour soutenir l'accès aux membres privés et protégés dans AOT mais cela n'atterrira pas avant au moins 6,0 (printemps de l'année prochaine).

Pouvez-vous donc me dire quelle sera la meilleure façon de déclarer des membres sur les composants?

Mise à jour:

J'utilise ionic cordova run Android --prod --device Commande CLI avec la dernière Ionic "ionic-angular": "3.5.3",. Mais cela fonctionne bien sur mon Android. Cela signifie qu'il fonctionne très bien avec le AOT trop non? Alors pourquoi cette erreur (ou avertissement en fait)?

17
Sampath

Ils doivent être public pour que AoT fonctionne.

Voir ici pour un peu plus de détails: https://github.com/angular/angular/issues/11978

14
Amit