获取“无法读取属性'键入'使用Angular2 AoT ngc编译器和RC5的null`

时间:2016-08-28 10:50:13

标签: angular

更新到Angular2 2.0.0-rc.5,在没有任何警告的情况下在浏览器中运行,但是当使用ngc -p命令尝试AOT编译时,得到流动的错误:

enter image description here

这是我的项目https://github.com/beginor/learning-angular2

2 个答案:

答案 0 :(得分:5)

不要在代码中使用默认导出:

// somefile.ts
export default function (...) {
    ...
}
...
// some-other-file.ts
import whatevar from './somefile';

使用显式名称

// somefile.ts
export function whatevar(...) {
    ...
}
...
// some-other-file.ts
import { whatevar } from './somefile';

AOT与默认导出(以及其他内容)不兼容。 但与其他不兼容性不同,这个不会产生最隐秘的错误消息。

答案 1 :(得分:2)

所有这些错误都与AoT有关。此博客文章介绍了您的代码中所做的更改。

Making your Angular 2 library statically analyzable for AoT

  1. const lambda =>出口功能
  2. 默认导出=>命名导出
  3. 对于从模板访问的任何成员,
  4. 私有,受保护的访问者应更改为公共
  5. 动态组件模板=>静态模板
  6. moduleId应该在使用templateUrl
  7. 的组件上设置