问题标签 [reflect-metadata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
464 浏览

typescript - tsyringe container.resolve 在自定义装饰器中创建一个新的调用实例

我正在尝试为tsyringe创建一个自定义装饰器以通过属性注入。

我的代码:

服务

调用类

控制台输出

当前行为:每次调用注入类的方法时,都会再次调用构造函数。所以这意味着我的类在每次新调用时都会得到新的初始化。

当我使用以下代码时,一切似乎都在工作

控制台输出

发生这种情况的任何原因?

0 投票
1 回答
53 浏览

typescript - 使用反射元数据访问类装饰器参数

考虑一个带有一个参数的类装饰器:

装饰器定义为:

我现在希望得到@TableName 值“Orders”。如何检索类装饰器的参数值?

0 投票
0 回答
29 浏览

typescript - 在打字稿中调用下一个装饰器后,元数据消失了反映元数据

我正在尝试在装饰器的帮助下定义具有属性角色的元数据到类中的方法,然后我调用另一个装饰器,但是元数据消失了,当我删除另一个装饰器时,它正在工作我的代码

没有 @validate 装饰器正在工作

不知道为什么会这样,有什么解决办法

0 投票
0 回答
191 浏览

typescript - 使用 AWS Lambda + 反射元数据包的无服务器

我正在使用需要reflect-metadata包的 TypeORM。

我曾经使用serverless-plugin-typescript哪个有效,我尝试使用新的serverless.tswebpack 模板,但现在我得到了:

根据我的发现,这可能是因为webpack-node-externals插件,但一旦我删除它,一切都会中断(我看到类似的东西Cannot find module Object.assign)。

我试着做import "reflect-metadata"import * as Reflect from "reflect-metadata"只要叉子等,@searchfe/reflect-metadata但没有任何效果。

是否可以强制 webpack 以某种方式包含这个包?

0 投票
0 回答
59 浏览

typescript - 带有类方法装饰器的打字稿奇怪行为

这段代码昨天还在工作,但是当我今天醒来时,我从 typescript 类方法装饰器中得到了一个奇怪的行为。我正在为另一个装饰器定义一些简单的元数据并实现一个 DB Logger。我将把我的数据访问类的片段放在这里。但是我放置@dbTrackChg装饰器的每种方法都会出现此错误Cannot read property 'methodName' of undefined

TS版本:4.1.2

在这种情况下,我得到以下信息:

这是定义类方法元数据的简单装饰器:

我不确定我是否弄乱了一些类型,但已经尝试了许多肮脏的解决方法,但没有任何效果。奇怪的是它昨天工作,所以我认为它与 TS 编译器有关。我有点在这上面扯头发。

这是我的tsconfig.json

更新

index.ts我正在从重新导出我的装饰器的文件中导入装饰器。我试图将导入更改为装饰器所在的实际文件,它突然起作用了;

改变了这个: DataAccess.ts

对此:

有人知道为什么会这样吗?我什至试图清空我的index.ts文件并只离开export * from './dbLogger',希望有一些出口冲突,但仍然无法让它工作。

它现在有效,但我不知道为什么。如果有人有想法,请赐教。

0 投票
1 回答
230 浏览

javascript - 如何阅读打字稿中的实例装饰器?

我可以使用创建自定义装饰器reflect-metadata,它工作正常。

问题是,我不知道如何获取所有实例装饰器。

我想@readTypesbarInstance. 我该怎么做?

请参阅工作示例: https ://stackblitz.com/edit/decorators-metadata-example-nakg4c

0 投票
0 回答
29 浏览

angular - 为什么反射元数据不是 Angular 依赖项?

Angular 使用一些修饰构造函数的元数据来进行依赖注入。例如:

但是,如果是这样,为什么'reflect-meta-data'package.json 在生成的角度应用程序中没有依赖关系?如何在运行时获取构造函数的类型注释?

0 投票
0 回答
111 浏览

node.js - 反映元数据设计:paramtypes 返回一个带有未定义元素的数组

我正在尝试获取某个类的构造函数参数,但是 <> 获取了一个带有未定义元素的数组。

对于测试,我使用服务 Example2Services 和 ExampleService

Example2Service.ts

示例服务.ts

在这个函数中,我发送一个 Example2Service

调试代码,我得到了这个令牌变量

在此处输入图像描述

试图了解行为,我尝试直接从某些类中获取参数

调试这个案例我得到了这个,发送一个 Example2Service 来解析函数。现在令牌是一个数组,里面有一个类。请注意,在导入 Example2Service 和 ExampleService 时会发生这种情况,但是在更改导入顺序时,行为会发生变化

在此处输入图像描述


编辑

我发现当依赖关系之间存在循环时会发生这种情况

0 投票
0 回答
20 浏览

typescript - 访问打字稿中类中属性的装饰器值

我正在使用class-transformer库来序列化打字稿中的数据。在上面的示例中,我想访问“Expose”装饰器上“name”的值。

简单地说,我希望能够做到这一点。

0 投票
1 回答
772 浏览

typescript - 为什么在vite中不能使用reflect-metadata

打我启动服务器,打开网页发现paramtypes是未定义的

tsconfig.json