【问题标题】:error TS2707 : Generic type 'MatDialogRef<T,R>' requiers between 1 and 2 arguments错误 TS2707:通用类型“MatDialogRef<T,R>”需要 1 到 2 个参数
【发布时间】:2018-10-04 08:58:03
【问题描述】:

请帮忙 我明白他的错误

 "error TS2707 : Generic type 'MatDialogRef<T,R>'  requiers between 1 and 2 arguments"

当我在我的代码中添加 MatDialogRef 我尝试了很多解决方案,但它对我不起作用

errordialogue.ts :

import {Component, Inject, Injectable} from '@angular/core'; import {MatDialogRef, MAT_DIALOG_DATA, MatDialog} from '@angular/material'; @Component({ selector: 'dialog-overview-example', templateUrl: 'error-dialog.component.html' }) export class ErrorDialogComponent { constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data : any) { } public closeDialog(){ this.dialogRef.close(); } } 

module.ts ;I add dialogModule in the imports array 

imports: [ BrowserModule, FormsModule, AppRouterModule, HttpModule, HttpClientModule, ReactiveFormsModule, CommonModule, BrowserAnimationsModule, MatDialog, MatDialogModule, MatDialogRef ],

【问题讨论】:

  • 请附上您的代码
  • 从'@angular/core'导入{组件,注入,可注入};从'@angular/material'导入{MatDialogRef,MAT_DIALOG_DATA,MatDialog}; @Component({ selector: 'dialog-overview-example', templateUrl: 'error-dialog.component.html' }) 导出类 ErrorDialogComponent { constructor(private dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) { }公共 closeDialog(){ this.dialogRef.close(); } } 错误对话.ts
  • module.ts ;我在导入数组导入中添加 dialogModule:[ BrowserModule, FormsModule, AppRouterModule, HttpModule, HttpClientModule, ReactiveFormsModule, CommonModule, BrowserAnimationsModule, MatDialog, MatDialogModule, MatDialogRef ],

标签: angular


【解决方案1】:

它出错是因为MatDialogRef 需要一个通用签名组件类,即您的ErrorDialogComponent

试试这个

import {Component, Inject, Injectable} from '@angular/core'; 
import {MatDialogRef, MAT_DIALOG_DATA, MatDialog} from '@angular/material'; 

@Component({ 
 selector: 'dialog-overview-example',
 templateUrl: 'error-dialog.component.html' 
}) 
export class ErrorDialogComponent { 
 constructor(private dialogRef: MatDialogRef<ErrorDialogComponent>, @Inject(MAT_DIALOG_DATA) public 
 data : any) { } 
 public closeDialog(){ this.dialogRef.close(); } 
}

【讨论】:

  • 但我收到此错误:../../../node_modules/@angular/cdk/a11y/typings/aria-describer/aria-describer.d.ts(8, 42): 错误 TS2307: 找不到模块'@angular/core'。
  • 尝试重建您的应用
  • 尝试重新安装@angular/material @angular/cdk,试试这个npm install --save @angular/material @angular/cdk
  • 我收到此错误:compiler.js:486 未捕获错误:模块“AppModule”导入的意外值“MatDialog”。请添加 @NgModule 注释。我尝试了这个解决方案stackoverflow.com/questions/48264880/…,但它不起作用
【解决方案2】:

除了“它不起作用”之外,我可以给你这个答案:关注docs

【讨论】:

    【解决方案3】:

    如果您没有启用 Enable Type 脚本编译器,您可能会在设置中遇到同样的问题。

    【讨论】:

      猜你喜欢
      • 2017-02-08
      • 2020-12-06
      • 2020-10-26
      • 2017-06-05
      • 2017-10-23
      • 1970-01-01
      • 2023-03-06
      • 2018-12-08
      • 2018-11-13
      相关资源
      最近更新 更多