Website-Suche

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,
) {}

Verwandte Artikel