gpt4 book ai didi

typescript - 我如何禁用/处理初始化,toJSON

转载 作者:行者123 更新时间:2023-12-03 14:24:24 24 4
gpt4 key购买 nike

我创建了一个 .NET core 2.2 webapi,并使用 swagger/nswag 为我的 React/typescript 应用程序生成 API。当我尝试设置一个新对象时,我得到一个 ts(2739)信息:

Type '{ firstName: string; lastName: string; }' is missing the following properties from type 'User': init, toJSON


有没有办法在全局范围内禁用/处理这个?它像它应该的那样工作,但我想摆脱错误(也许是 ts-ignore?)
我已经尝试过多种解决方案;
错误但读取数据:
const newUser: User = {
firstName,
lastName,
};
没有错误但不读取数据:
const newUser = new User ({
firstName,
lastName,
});
我还可以删除所有 nswag已创建 inittoJSON但这会很耗时。
.NETCore 模型( Baseclass 只是 Id 和 createdAtDate)
    public class User : BaseModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Image { get; set; }
}
}
生成的 Typescript Nswag 代码
export interface IBaseModel {
id?: string | null;
creationDate?: Date | null;
updateDate?: Date | null;
}

export class User extends BaseModel implements IUser {
firstName?: string | null;
lastName?: string | null;
image?: string | null;

constructor(data?: IUser) {
super(data);
}

init(data?: any) {
super.init(data);
if (data) {
this.firstName = data["firstName"] !== undefined ? data["firstName"] : <any>null;
this.lastName = data["lastName"] !== undefined ? data["lastName"] : <any>null;
this.image = data["image"] !== undefined ? data["image"] : <any>null;
}
}

static fromJS(data: any): User {
data = typeof data === 'object' ? data : {};
let result = new User();
result.init(data);
return result;
}

toJSON(data?: any) {
data = typeof data === 'object' ? data : {};
data["firstName"] = this.firstName !== undefined ? this.firstName : <any>null;
data["lastName"] = this.lastName !== undefined ? this.lastName : <any>null;
data["image"] = this.image !== undefined ? this.image : <any>null;
super.toJSON(data);
return data;
}
}

export interface IUser extends IBaseModel {
firstName?: string | null;
lastName?: string | null;
image?: string | null;
}
typescript 使用类作为类型
const newUser: User = {
firstName,
lastName,
};
我想禁用 init & toJSON这会导致错误,我不需要将它们声明为起作用。
错误:

Type '{ firstName: string; lastName: string; }' is missing the following properties from type 'User': init, toJSON


我想摆脱错误,而不必手动重写整个 NSWAG 生成的 API 客户端。也许我使用错误的类,当使用接口(interface)时我得到相同的错误消息。

最佳答案

inittoJSON创建 TypeScript 文件并将 DTO 样式设置为 Class 时会生成方法。如果将该选项设置为接口(interface)样式,则不应实现方法,而应仅实现属性。
请参阅以下裁剪图像:
DTO settings

关于typescript - 我如何禁用/处理初始化,toJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58207451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com