Я использую машинопись для сервера, подключенного к mongodb.
Я строго определяю выходные данные с помощью файла openapi.
С mongoose я очень хорошо знаю определение дат, например:
birthday: Date;
и теперь с Typegoose:
@prop()
birthday: Date;
Пока все хорошо, за исключением тех случаев, когда мне нужно вывести данные с моего сервера машинописного текста, например:
public async generateLoginTokensAndHttpResponse (userDoc: User, req: any): Promise<Login> {
const renewalToken = JwtService.generateRenewalToken(userDoc);
await JwtRepository.createNewJwt(userDoc._id, renewalToken, req.clientIp, req.headers['user-agent']);
return {
tokenAccess: {
value: JwtService.generateAccessToken(userDoc),
},
tokenRenewal: {
value: renewalToken,
},
user: userDoc,
};
}
Если интерфейс «Логин» выглядит следующим образом (генерируется на основе определения чванства):
export default interface Login {
user: {
verified: boolean;
email: string;
firstName: string;
lastName: string;
username: string;
captchaLocked: boolean;
birthday?: string;
};
tokenAccess: { value: string };
tokenRenewal: { value: string };
}
Если я изменю значение birthday?: string;
на birthday?: Date;
, это нормально, но тогда это нарушает ожидаемый результатопределение чванства:
type: string
format: date-time
Было бы дорого обходить общие объекты, вызывая функцию для преобразования всех объектов даты в строки даты-времени.
Какова лучшая практика здесь?