RMC*_*MCS 7 swagger typescript .net-core openapi nswag
我创建了一个 .NET core 2.2 webapi,并使用 swagger/nswag 为我的 React/typescript 应用程序生成 API。当我尝试设置一个新对象时,我收到一条ts(2739)
消息:
输入'{名字:字符串;姓氏:字符串;}' 缺少来自类型 'User' 的以下属性:init, toJSON
有没有办法全局禁用/处理这个?它像它应该的那样工作,但我想摆脱错误(也许是 ts-ignore?)
我已经尝试了多种解决方案;
错误但读取数据:
const newUser: User = {
firstName,
lastName,
};
Run Code Online (Sandbox Code Playgroud)
没有错误但不读取数据:
const newUser = new User ({
firstName,
lastName,
});
Run Code Online (Sandbox Code Playgroud)
我也可以删除所有nswag
创建的init
,toJSON
但这会很耗时。
.NETCore 模型(Baseclass
只是 Id 和 createdAtDate)
public class User : BaseModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Image { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
生成的 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;
}
Run Code Online (Sandbox Code Playgroud)
打字稿使用类作为类型
const newUser: User = {
firstName,
lastName,
};
Run Code Online (Sandbox Code Playgroud)
我想禁用init
&toJSON
导致错误,我不需要声明它们的功能。
错误:
输入'{名字:字符串;姓氏:字符串;}' 缺少来自类型 'User' 的以下属性:init, toJSON
我想摆脱错误,而不必手动重写整个 NSWAG 生成的 API 客户端。也许我使用的类是错误的,当使用接口时,我收到相同的错误消息。
归档时间: |
|
查看次数: |
646 次 |
最近记录: |