Подскажите, как обратиться к классу по его полному имени в TypeScript. В самом простом случае, есть два класса:
namespace API {
export class SomeUnit {
}
}
namespace UI {
export class SomeUnit {
}
}
И далее, в каком-то другом классе, мне нужно создать экземпляры обоих этих классов по их полному (включая namespace) имени, т.е.:
var apiUnit = new API.SomeUnit();
var uiUnit = new UI.SomeUnit();
Причём, вопрос актуален даже в тех случаях, когда нет пересечения по самим именам классов в разных пространствах имён, т.к. если где-то в коде встречается:
var company = new Company();
То вот в таком виде из кода совершенно не очевидно, что это за 'Company'. Вот если там будет что-то типа:
var company = new API.DTO.Company();
var company = new UI.Model.Company();
То при чтении кода не придётся ходить в другие файлы, читать комментарии или пытаться из пути файла вывести, к какому вообще блоку логики этот класс относится.
P.S.: да, это шапровская привычка, но это реально упрощает чтение кода и хочется в TS получить хоть что-то похожее. Пока у меня только одна идея - весь неймспейс вписывать в качестве префикса имени класса с разделителем через заглавные буквы. Но это так себе решение, т.к. имена классов очень уж громоздкие получаются.