Свойство является частным и доступно только в случае ошибки класса в Angular Library - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь преобразовать приложение Angular 6 в библиотеку многократного использования; вот что я сделал:

  • создал новое рабочее пространство Angular
  • создал новый проект библиотеки Angular внутри этого рабочего пространства
  • скопировал артефакты из старого приложения внутри библиотеки и скорректировал операторы импорта

Когда я пытаюсь скомпилировать проект с помощью "ng build --project = ..", я получаю много таких ошибок: «Свойство X является частным и доступно только в пределах класса Y»

Я понимаю ошибки и исправлю их, но мой вопрос: Если я пытаюсь построить старое приложение с aot, я не получаю эту ошибку .. почему?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 января 2019

При компиляции AOT Angular статически анализирует ваш код.Использование неправильных модификаторов доступа является критерием, который позволяет сбою компиляции AOT, в то время как компиляция преуспевает в компоновке без AOT.

Это так, потому что в режиме «точно вовремя» (который обычно является вашимng start), Typescript не используется - генерируется код ES5, поэтому такого понятия, как «приватное» поле, не существует, и у нас нет способа обеспечить его.

Вещи, к которым осуществляется доступ из шаблонадолжен быть общедоступным, поскольку к ним обращаются за пределами экземпляра класса.

0 голосов
/ 23 января 2019

Свойство private работает с определенными версиями Typescript. При создании вашей новой рабочей области Angular была установлена ​​новая версия машинописного текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...