Получить тип свойства из сеттера на прокси-классе Typescript - PullRequest
0 голосов
/ 21 апреля 2020

Я застрял в проблеме. Я создаю прокси для моего BaseModel Class, у которого есть базовые методы для взаимодействия с mon goose типовым способом.

В моем случае мне нужно получить тип свойства, которое будет установлено, чтобы знать, что мне нужно сделать. Для этого я использую шаблон Reflect.

export enum ReflectKeys {

  /** Get the Typescript assigned Type at runtime */
  Type = 'design:type',

}

/**
 * A Proxy for all getters of model
 *
 * @export
 * @class Proxify
 */
export class Proxify {
  constructor() {
    return new Proxy(this, this);
  }

  public get(target: any, prop: string) {
    if (this.hasOwnProperty(prop)) {
      // DO STUFFS
    }
  }

  set(target: any, prop: string, value: any, receiver: any): boolean {
    const type = Reflect.getOwnMetadata(ReflectKeys.Type, target, prop);

    console.log(type); // TYPE: UNDEFINED

    return target[prop] = value;
  }
}

Когда я консоль регистрирую тип, который я получаю, тип не определен! Я не знаю, что я делаю не так. Эта строка кода, где написано Reflect, я использую это в других местах и ​​отлично работает.

Любое предложение?

...