Javascript 如何在Typescript中扩展组件,并找出所需的参数?用例:角度-延伸垫侧导航

Javascript 如何在Typescript中扩展组件,并找出所需的参数?用例:角度-延伸垫侧导航,javascript,angular,typescript,oop,angular-material2,Javascript,Angular,Typescript,Oop,Angular Material2,背景: 角材料设计的动力学要求具有以下结构: <mat-sidenav-container> <mat-sidenav> </mat-sidenav> <mat-sidenav-content> </mat-sidenav-content> </mat-sidenav-container> 这样我就可以简单地做到: <mat-sidenav-container> <app-sidena

背景:

角材料设计的动力学要求具有以下结构:

<mat-sidenav-container>
  <mat-sidenav>
  </mat-sidenav>
  <mat-sidenav-content>
  </mat-sidenav-content>
</mat-sidenav-container>
这样我就可以简单地做到:

<mat-sidenav-container>
  <app-sidenav> <!--I'm now here instead of <mat-sidenav> -->
  </app-sidenav>
  <mat-sidenav-content>
  </mat-sidenav-content>
</mat-sidenav-container>

问题: typescript编译器将抱怨
错误TS2554:应为6个参数,但在尝试扩展MatSidenav时得到了0。

问题:

  • 为什么通过扩展MatSideNav,我现在需要6个参数
  • 我有没有办法找出这6个参数是什么,在这种情况下,以及其他类似的类型脚本情况下,这些参数应该是什么
    谢谢,任何建议都将不胜感激

    您需要这6个参数。您可以在Angular Material2的源代码中检查它们。至于原因,这是一条基本的遗产规则。当您调用super时,基本上是调用父类的类构造函数(在本例中需要6个参数)


    您将需要这6个参数。您可以在Angular Material2的源代码中检查它们。至于原因,这是一条基本的遗产规则。当您调用super时,基本上是调用父类的类构造函数(在本例中需要6个参数)


    您可以省略子类中的构造函数,因此不需要关心参数(确保这在JIT和AOT模式下都有效)。您可以省略子类中的构造函数,因此不需要关心参数(确保这在JIT和AOT模式下都有效)。
    export class SideNavComponent extends MatSidenav implements AfterContentInit { 
    //..
    
    constructor() {
      super();
    }
    
    <mat-sidenav-container>
      <app-sidenav> <!--I'm now here instead of <mat-sidenav> -->
      </app-sidenav>
      <mat-sidenav-content>
      </mat-sidenav-content>
    </mat-sidenav-container>
    
                  private _elementRef: ElementRef,
                  private _focusTrapFactory: FocusTrapFactory,
                  private _focusMonitor: FocusMonitor,
                  private _platform: Platform,
                  private _ngZone: NgZone,
                  @Optional() @Inject(DOCUMENT) private _doc: Document