为什么JIT需要使用Angular反射polyfill

时间:2019-01-02 18:32:19

标签: angular

Angular browser support page中,它说明了JIT编译和ES7 / reflect polyfill:

  

如果您始终使用AOT并且仅使用Angular装饰器,则可以删除。

我不清楚两件事:

  1. AOT为什么不要求使用反射?不需要读取元数据进行依赖注入的反思吗?

  2. “仅使用Angular装饰器”是什么意思?

1 个答案:

答案 0 :(得分:1)

  

为什么AOT不需要使用反射?不需要反思   读取元数据以进行依赖项注入?

是的,AOT适用于不需要反射的编译版本。 AOT编译器会静态解析所有元数据,并将其转换为包含它们需要呈现的所有内容的工厂。

  

“仅使用Angular装饰器”是什么意思?

如果使用任何非特定于角度的装饰器,则必须包括该polyfill,因为AOT编译器仅转换它知道的装饰器,即@Component@Input @NgModule等。它也会删除那些捆绑中的装饰器。对于将在运行时执行的其他装饰器,我们必须包括该polyfill。