Javascript 类型化定制装饰器

Javascript 类型化定制装饰器,javascript,node.js,typescript,typeorm,Javascript,Node.js,Typescript,Typeorm,我希望能够向实体模型中添加自定义装饰器,以标记用户元数据迁移的特定字段 比如说, import {Entity, PrimaryGeneratedColumn, Column} from "typeorm"; import { CreatedBy } from "../subscribers/test"; @Entity() export class User { @PrimaryGeneratedColumn() id!: numbe

我希望能够向实体模型中添加自定义装饰器,以标记用户元数据迁移的特定字段

比如说,

import {Entity, PrimaryGeneratedColumn, Column} from "typeorm";
import { CreatedBy } from "../subscribers/test";

@Entity()
export class User {

    @PrimaryGeneratedColumn()
    id!: number;

    @Column()
    name!: string;

    @Migrate()
    userValue!: string;
 
    @Migrate()
    specficValue!: string;

}
其中migrate可以像一个列装饰器,但是我可以使用一个用户模型,找到所有具有migrate装饰器的属性,这样我就知道应该向前拉哪些属性

有没有一种方法可以在typeform中实现这一点


感谢您的帮助。

查看以下github tapeorm问题:

具体而言,我将检查“ColumnComonOptions”装饰器的工作原理:

这似乎很直截了当:

// MigrateDecorator.ts

import { getMetadataArgsStorage } from "typeorm";
//Optional
import { MigrateOptionsInterface } from './MigrateOptionsInterface'

 export function MigrateDecorator(options?: MigrateOptionsInterface): Function { 
     return function (object: Object, propertyName: string) { 
         getMetadataArgsStorage().columns.push({
           propertyName,
           migrate: options.migrate || false // just an example
         }); 
     }; 
 } 

这看起来不错,但接下来我如何提取元数据来表示“此列被标记为已使用decorator迁移”?此元数据似乎无法直接在实体上访问?