Как документировать возврат записи типа с помощью Nestjs OpenAPI?

#typescript #swagger #nestjs #openapi

Вопрос:

У меня есть конечная точка, которая вернет тип записи TypeScript. Однако, когда я использую файл @ApiOkResponse from NestJS для его документирования, я получаю сообщение об ошибке: 'Record' only refers to a type, but is being used as a value here. .

Я пытаюсь сделать это вот так:

 @Get('my/endpoint')
@ApiOkResponse({
  type: Record<KeyEnum, ValueClass>,
  description: 'some description',
})
public async myEndpoint(): Promise<Record<KeyEnum, ValueClass>> {
  return this.myService.method();
} 

Комментарии:

1. короче говоря, типы не существуют во время выполнения, поэтому вы не можете использовать псевдонимы типов или интерфейсы из TS. Если вы хотите использовать type (и не schema использовать), вы должны превратить это Record<KeyEnum, ValueClass> в класс js