Машинопись: как получить имя класса?

#angular #typescript #class #classname

Вопрос:

В typescript как вы извлекаете имя класса из самого класса?

Например, учитывая следующий код:

 export class SomeRandomName extends AbstractSomething<SomeType> implements OnDestroy {

  className = 'SomeRandomName';
 

есть ли способ автоматически присвоить className переменной имя класса SomeRandomName ?

Заранее спасибо.

Комментарии:

1. instanceOfSomeRandomName.constructor.name

2. @enno.void спасибо; однако сначала нужно создать экземпляр объекта класса, а затем назначить имя класса instanceOfSomeRandomName.constructor.name . Могу ли я назначить его из самого класса?

Ответ №1:

Вы можете просто сделать это:

 export class SomeRandomName extends AbstractSomething<SomeType> implements OnDestroy {
      getName() {
        return (this as any).constructor.name;
      }
}
 

Ответ №2:

Класс машинописного текста-это всего лишь класс ES6. Вы можете получить имя класса в виде строки из .constructor.name

 class Foo {}

const foo = new Foo();
console.log(foo.constructor.name); // Foo
 

Комментарии:

1. Спасибо; есть ли способ назначить имя класса внутри самого класса, а не через экземпляр класса, например, без создания объекта класса?