javascript - Wie man in Nestjs mehr als eine DTO-Klasse erweitert
Ich bin neu bei nest.js und habe eine Frage dazu.
Ich möchte mehr als ein Dto in meine Haupt-dto-Klasse erweitern, aber ich weiß, dass es nicht möglich ist, mehr als 2 dto-Klassen zu erweitern. Hast du eine Idee, wie man das machen kann?
Hier ist meine Haupt-dto-Klasse:
export class CarDto extends PickupLocationDto {
@ApiProperty({ example: 'Aventador', description: 'The car name' })
readonly modelName: string;
}
In letzter Zeit kann ich es nur von der Klasse PickupLocationDto erweitern, aber ich möchte noch eine weitere dto-Klasse zu dieser CarDto-Klasse erweitern.
Jede Hilfe wird geschätzt.
Antwort #1
Da ich Swagger verwende, zeigt die Verwendung des @nestjs/mapped-types-Pakets nicht alle Variablen der zusammengeführten DTOs an. Daher verwende ich IntersectionType von Swagger
import { ApiProperty, IntersectionType } from '@nestjs/swagger';
export class Dto3 extends IntersectionType(
Dto1,
Dto2,
) {}
Antwort #2
Du kannst mapped-types dafür verwenden, zuerst musst du das Paket installieren (yarn add @nestjs/mapped-types), dann benutze IntersectionType genau so:
import { IntersectionType } from '@nestjs/mapped-types';
export class Dto3 extends IntersectionType(
Dto1,
Dto2,
) {}
