Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 类型为'的参数;类型<;类名>';不可分配给类型为';新建()=>&书信电报;类名>';_Typescript - Fatal编程技术网

Typescript 类型为'的参数;类型<;类名>';不可分配给类型为';新建()=>&书信电报;类名>';

Typescript 类型为'的参数;类型<;类名>';不可分配给类型为';新建()=>&书信电报;类名>';,typescript,Typescript,我得到以下错误 Argument of type 'typeof Settings' is not assignable to parameter of type 'new () => Settings' 在下面的行中 new JsonConvert().deserialize(Settings.Get(), Settings) 的文档说我应该传递一个classReference作为第二个参数。他们的例子和我的一样 下面是设置类的简化 export default class Sett

我得到以下错误

Argument of type 'typeof Settings' is not assignable to parameter of type 'new () => Settings'
在下面的行中

new JsonConvert().deserialize(Settings.Get(), Settings)
的文档说我应该传递一个
classReference
作为第二个参数。他们的例子和我的一样

下面是
设置
类的简化

export default class Settings {
  constructor(a: number) {
    this._a= a;
  }

  @JsonProperty('_a', Number)
  private _a: number;

  get A() {
    return this._a;
  }

  set A(newA: number) {
    this._a= newA;
  }

  static Get(): string {
    return <someJson>;
  }


  static GetObj(): Settings {
    return new JsonConvert().deserializeObject(Settings.Get(), Settings);
  }
}
导出默认类设置{
建造师(a:编号){
这个。_a=a;
}
@JsonProperty(“a”,编号)
私人(a)号码;;
得到一个(){
把这个还给我;
}
设置A(新A:编号){
这个。_a=newA;
}
静态Get():字符串{
返回;
}
静态GetObj():设置{
返回新的JsonConvert().deserializeObject(Settings.Get(),Settings);
}
}

反序列化对象
需要一个构造函数不带参数的类

export default class Settings {
  constructor(a?: number) {
    this._a = a!;
  }

  @JsonProperty('_a', Number)
  private _a: number;

  get A() {
    return this._a;
  }

  set A(newA: number) {
    this._a= newA;
  }

  static Get(): string {
    return "{}";
  }


  static GetObj(): Settings {
    return new JsonConvert().deserializeObject(Settings.Get(), Settings);
  }
}

反序列化对象
需要一个构造函数不带参数的类

export default class Settings {
  constructor(a?: number) {
    this._a = a!;
  }

  @JsonProperty('_a', Number)
  private _a: number;

  get A() {
    return this._a;
  }

  set A(newA: number) {
    this._a= newA;
  }

  static Get(): string {
    return "{}";
  }


  static GetObj(): Settings {
    return new JsonConvert().deserializeObject(Settings.Get(), Settings);
  }
}

你能多发一些代码吗?
设置
类的外观如何?如果我不得不猜测的话,我会说它是抽象的,有一个私有构造函数,或者其他一些不适合构造函数的东西。你可以发布更多的代码吗?
设置
类的外观如何?如果我不得不猜测,我会说它要么是抽象的,要么有一个私有构造函数,要么是其他一些不适合构造函数的东西。我已经添加了设置class@huckjulius,这只是一个语义错误,在运行时,
JsonConvert
将在不带参数的情况下调用构造函数。这可能还可以,因为它稍后会设置
a
,但这是预期的契约
JsonConvert
与您的实现之间的不匹配provided@huckjulius,这只是一个语义错误,在运行时,
JsonConvert
将在不带参数的情况下调用构造函数。这可能还可以,因为它稍后会设置
a
,但这是预期的契约
JsonConvert
与您提供的实现之间的不匹配