Skip to content

Class decorator stopped working on angular@15 #48276

Closed as not planned
Closed as not planned
@naturalfreak

Description

@naturalfreak

Having class decorator:

export function openDialogClass() {
  return function <T extends { new(...args: any[]): {} }>(constructor: T) {
    return class extends constructor {
      mat_dialog = inject(MatDialog);
    };
  }
}

And in component:

@Component({
  selector: 'page',
  templateUrl: 'index.html',
  styleUrls: ['style.scss'],
})

@openDialogClass()
export class Component{ 
    constructor(){
       consol.log(this.mat_dialog) // On angular@14 it's fine, but on angular@15 it's undefined
   }
}
Angular CLI: 15.0.1
Node: 18.12.1
Package Manager: npm 8.19.2
OS: linux x64

Angular: 15.0.1
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... platform-server, router, service-worker

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1500.1
@angular-devkit/build-angular   15.0.1
@angular-devkit/core            15.0.1
@angular-devkit/schematics      15.0.1
@angular/cdk                    15.0.0
@angular/material               15.0.0
@schematics/angular             15.0.1
rxjs                            7.5.7
typescript                      4.8.4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions