В Typescript создайте новую строковую переменную Type, состоящую только из имен подклассов указанного суперкласса. - PullRequest
3 голосов
/ 29 апреля 2019

Каков наилучший способ создания новой строки Type, которая включает в себя только имена производных классов определенного базового класса.Например: если A - это супер, а A1, A2, A3 и т. Д. Являются производными классами, новый тип SubClassName должен позволять присваивать имена этих производных классов только в строковой форме.

class A {}
class A1 extends A{}
class A2 extends A{}
class AnyChildOfA extends A{}

// want to achieve this but don't want to manually add the new derived or child class each time something changes

type SubClassStrName = 'A1' | 'A2' | 'AnyChildOfA';

// This line is invalid syntax, but might tell what is desired
type SubClassName<T> = <? extends T>.constructor.name;
...