我正在尝试在可重用的库中转换Angular 6应用程序;这是我所做的:
当我尝试使用“ ng build --project = ..”编译项目时,出现很多这些错误: “属性X是私有的,只能在类Y中访问”
我了解这些错误,因此我将对其进行纠正,但我的问题是: 如果我尝试使用aot构建旧应用程序,那么我不会收到此错误。为什么?
谢谢!
答案 0 :(得分:2)
在AOT编译中,Angular静态分析您的代码。使用错误的访问修饰符是使AOT编译失败的标准,而在没有AOT的编译中编译成功。
之所以这样,是因为在“及时”模式(通常是您的ng start)中,没有使用Typescript-正在生成ES5代码,因此没有“私有”字段这样的概念,我们无法执行此操作。
从模板访问的事物必须是公共的,因为它们是在类实例之外访问的。
答案 1 :(得分:0)
private
属性正在使用特定版本的Typescript。
创建新的Angular工作区时,安装了新的打字稿版本。