'string | 类型的参数null' 不能分配给类型为 'String' 的参数。类型 'null' 不能分配给类型 'String'。 [角度]

时间:2021-06-16 15:24:59

标签: angular

我试图用我的 component.ts 中的变量(角度)影响 class.ts 中的设置属性,如下所示:

this.UserPaiemet.setDate(this.DateN)

IDE 向我显示此错误:

Argument of type 'string | null' is not assignable to parameter of type 'String'.
  Type 'null' is not assignable to type 'String'.

131     this.UserPaiemet.setDate(this.DateN)

我不知道如何修复它。

我的班级:

export class UserPaiemet
{
 private id!:Number;
 private date!:String;
 private nbrmois!:Number;
}

和我的组件方法

date = new Date()
  DateN  = this.datePipe.transform(this.date, "yyyy-MM-dd")
  UserPaiemet= new UserPaiemet()
  updateUserPai()
  {
  this.UserPaiemet.setDate(this.DateN)
  }

3 个答案:

答案 0 :(得分:1)

请使用以下约定来声明类型,例如(String -> string)

export class UserPaiemet {
    private id!: number;
    private date!: string;
    private nbrmois!: number;
}

date = new Date();
DateN = this.datePipe.transform(this.date, "yyyy-MM-dd") || ''; // or dummy date here
UserPaiemet = new UserPaiemet();
updateUserPai();
{
    this.UserPaiemet.setDate(this.DateN);
}

答案 1 :(得分:0)

尝试将您的数据类型更改为小写

export class UserPaiemet
{
 private id:number;
 private date:string;
 private nbrmois:number;
}

答案 2 :(得分:0)

在javascript中,“number”是原始类型,“Number”是对象类型。作为 Java int 和 Integer 中的比较(int 是原始类型 Integer 而不是对象类型),因此在您的情况下 Number 不等于 number。但在您的情况下,问题是另一个:您不能将 null 或 string 分配给 String 类型。可能 ide 没有很好地识别对象类型,因此尝试将其置于小写并执行。

否则试试:

export class UserPaiemet
{
 private id:number;
 private date:string|null;
 private nbrmois:number;
}