Cuándo y cómo se aplica el decorador a las clases decoradas de los paquetes @angular

Si uso un decorador en mi clase, el decorador se evalúa al importar la clase. Aquí está el pequeño ejemplo:

@NgModule({ ... })
export class BModule { ... }

Transpilado como:

var BModule = (function () {
    function BModule() {
    }
    BModule = __decorate([  <---------- decorators are applied here
        core_1.NgModule({...})
    ], BModule);
    return BModule;
}());
exports.BModule = BModule;

Sin embargo, cuando el módulo o cualquier otro decorador se aplica en el@angular&nbsp;agrupa la salida es la siguiente:

var HttpClientModule = (function () {
    function HttpClientModule() {
    }
    return HttpClientModule;
}());
HttpClientModule.decorators = [
    { type: _angular_core.NgModule, args: [{ ... },] },
];

Como puede ver, los decoradores no se aplican aquí. Simplemente se guardan en eldecorators&nbsp;propiedad. ¿Por qué es diferente de mi código?

La razón por la que pregunto es que al importar mis clases decoradas espero que apliquen decoradores y, por lo tanto, useReflect&nbsp;es posible:

const providers = Reflect.getOwnMetadata('annotations', BModule);

Sin embargo, no funciona de esta manera con clases decoradas de@angular&nbsp;paquetes