Как преобразовать строку в тип / компонент в Angular? - PullRequest
0 голосов
/ 26 мая 2019

В Angular я получаю строку и хочу преобразовать ее в тип / компонент.Например, я получаю «ListComponent» и хочу добавить ListComponent в приложение.Я не хочу отображать их на карте или что-то в этом роде.Можно ли получить тип из строки?

stringComponent = "ListComponent";
typeComponent = *transform "ListComponent" to ListComponent;
method(typeComponent);

1 Ответ

0 голосов
/ 27 мая 2019

Может быть что-то вроде:

class ListComponent {
  foo = 'bar'
}
class LolComponent {}

const componentsMap = {
  ListComponent,
  LolComponent
}

type ComponentName = keyof typeof componentsMap;


function convertStringToComponent<Name extends ComponentName>(name: Name): (typeof componentsMap)[Name] {
  return componentsMap[name];
}

const CompByName = convertStringToComponent('ListComponent');

const instance = new CompByName();

instance.foo; // ok!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...