Я создал .NET core 2.2 webapi и использую swagger / nswag для генерации API для моего приложения React / typcript. Когда я пытаюсь установить новый объект, я получаю 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 init
и toJSON
, но это заняло бы много времени ..
.NETCore Model (Baseclass
- это просто Id и createAtDate)
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
, который вызывает ошибку, и мне не нужно указывать, чтобы они функционировали.
error;Type '{ firstName: string; lastName: string; }' is missing the following properties from type 'User': init, toJSON
Я хотел бы избавиться от ошибок без необходимости переписывать вручную весь сгенерированный клиент NSWAG API. Может быть, я использую классы неправильно, при использовании интерфейсов я получаю то же сообщение об ошибке.
Спасибо, я заранее :)