Как определить любой из двух классов с помощью TypeScript? - PullRequest
0 голосов
/ 05 мая 2020

У меня есть:

class CreateYouTubeConversationDto {
    @ApiProperty({ required: true })
    youtubeId: string;
}

class CreateDirectConversationDto {
    @ApiProperty({ required: true })
    imageUrl: string;

    @ApiProperty({ required: true })
    createdByUserId: string;
}

Я хочу создать новый класс, который является одним из них. Если бы это был type, я бы сделал: type Convo = CreateYouTubeConversationDto | CreateDirectConversationDto

Но поскольку это класс, я не могу. Как мне сделать sh это?

1 Ответ

1 голос
/ 05 мая 2020

Вы сказали, что можете создать тип, поэтому для этого вам нужно:

type Convo =
  | typeof CreateYouTubeConversationDto
  | typeof CreateDirectConversationDto;

Но если вы действительно хотите новый класс? И я предполагаю, что ты не хочешь наследования? Вы можете сделать это:

class Foo implements Convo {
  // look for errors that you didn't properly
  // implement Convo here
}
...