typescript - 'typeof 类型的参数' 不可分配给 'new () => 类型的参数'
问题描述
我收到以下错误
Argument of type 'typeof Settings' is not assignable to parameter of type 'new () => Settings'
在下一行
new JsonConvert().deserialize(Settings.Get(), Settings)
json2typescript的文档说我应该将 aclassReference
作为第二个参数传递。他们的例子和我的一样。
这是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 <someJson>;
}
static GetObj(): Settings {
return new JsonConvert().deserializeObject(Settings.Get(), Settings);
}
}
解决方案
deserializeObject
需要一个具有不带参数的构造函数的类。
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);
}
}
推荐阅读
- java - 如何在java中反转二维数组?
- javascript - 如何优雅地处理 React 表单错误
- python - Python: Waking MacOS Device
- flutter - 在flutter上使用最新版本的相机包时如何修复错误
- random - 对三角形内的均匀随机点进行采样
- spring-boot - 如何在应用程序启动期间查看我的 Spring Boot 应用程序正在连接的数据库模式
- javascript - 在特定频道中发送消息 - 不起作用
- sql - Oracle - 将 UTC 日期转换为本地日期时间美国格式
- python - 在带有重复标题的csv中使用axis = 1的concat块(手动将多表excel保存到csv)
- java - Android Studio 中的 Python 脚本