【发布时间】:2022-02-04 02:07:08
【问题描述】:
我偶然发现了this question,但我不认为我想使用别名
我想扩展 express anyFilesInterceptor 以便我可以使用自定义文件对象。我不确定如何在 NestJS 中扩展装饰器。
因此,作为一种解决方法,我尝试了 another question 的装饰器组合。但是,我只是尝试创建一个非常基本的(文档中的示例)装饰器时遇到错误
import { applyDecorators, createParamDecorator, ExecutionContext } from "@nestjs/common";
import { AnyFilesInterceptor } from "@nestjs/platform-express";
export function Test() {
return applyDecorators(
AnyFilesInterceptor,
TestDecorator
)
}
export const TestDecorator = createParamDecorator(
(data: string, ctx: ExecutionContext) => {
const request = ctx.switchToHttp().getRequest();
const user = request.user;
return data ? user?.[data] : user;
},
);
现在我可以从其他讨论和函数命名中看到 AnyFilesInterceptor 是一个返回类的 mixin,而由 createParamDecorator 创建的 TestDecorator 可能只适用于参数。
NestJS 有办法创建类装饰器吗?或者扩展现有的装饰器?
【问题讨论】:
标签: javascript typescript nestjs decorator extends