在装饰器中使用泛型类型

时间:2020-02-18 21:14:50

标签: typescript nestjs

我想为NestJs应用程序创建异常过滤器。我基本上是从这里获取代码的

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 {
    // ...
  }
}

此异常过滤器应运行基本逻辑,并采用类型Error的泛型。 Catch装饰器无法处理该通用类型

找不到名称“ TException”。您是说'DOMException'吗?ts(2552)

是否可以在类定义之外使用该泛型?因为基本上我可以传递我想要的任何类型

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

但我认为它必须在运行时之前存在...如何解决此问题的任何想法?

0 个答案:

没有答案