использовать тип generi c в декораторе - PullRequest
2 голосов
/ 19 февраля 2020

Я хотел бы создать фильтры исключений для моего приложения Nest Js. Я в основном взял код отсюда

https://docs.nestjs.com/exception-filters#exception -filters-1

и создал свою собственную версию

import { ExceptionFilter, Catch } from '@nestjs/common';

@Catch(TException)
export class BaseExceptionFilter<TException extends Error> implements ExceptionFilter {
  catch(exception: TException): void {
    // ...
  }
}

Этот фильтр исключений должен работать basi c logi c и принимает тип c типа Error. Декоратор Catch не может работать с этим родовым c типом

Не удается найти имя TException. Вы имели в виду «DOMException»? Ts (2552)

Можно ли использовать этот род c вне определения класса? Потому что в основном я могу передать любой тип, который я хочу

@Catch(String)
export class BaseExceptionFilter implements ExceptionFilter {
  catch(exception: string): void {
    // ...
  }
}

, но я думаю, что он должен существовать до времени выполнения ... есть идеи, как решить эту проблему?

...