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。
问题:
谢谢,任何建议都将不胜感激 您需要这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