Typescript: проверка значения строковой переменной является частью имени свойства класса, заданного как тип T - PullRequest
1 голос
/ 08 апреля 2020

Я создал фабрику, проверяющую, что данное свойство существует в моем классе A.

Это работает:

nameOf<A>("name")

Итак, учитывая строку, она работает, но я не могу ее сделать работает при использовании переменной (dynamici c):

nameOf<A>(this.filters.orderCode) // this.filters.orderCode can contain "id", "name", ... so properties of my A class

Сообщение об ошибке: Аргумент типа «string» не может быть назначен параметру типа «id» | "имя" | ... Мое имя фабрики:

export const nameOf = <T>(name: keyof T) => name;

Мой объект Класс A:

export class A {
  id: number = 0;
  name = '';
  ...
}

РЕДАКТИРОВАТЬ

Имя фабрики дает возможность в нем есть смысл, чтобы показать список свойств моей модели в дополнение к проверке: enter image description here

Я использую машинопись 3.2.4

Большое спасибо за вашу помощь.

...