powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Typescript как получить имя класса при использовании декоратора
3 сообщений из 3, страница 1 из 1
Typescript как получить имя класса при использовании декоратора
    #39538865
SolidSnake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
// для исполнения кода, можно зайти сюда: https://www.typescriptlang.org/play/
class TBaseClass {}

interface Newable<T> {
    new(...args: any[]): T;
}

function Decorate() {
    return function <T extends Newable<TBaseClass>>(constructor: T): any {
        // extend constructor
        return class extends constructor {
            protected _extraField: string = '-'
        }; 
    }
}

@Decorate()
class Test {}

@Decorate()
class ExtTest extends Test {}

alert(ExtTest.name) // возвращает "class_1", как получить "ExtTest"?


Как грамотно получить нужное имя класса?
Понятно, что конструктор подменяется.
Через объявление дополнительного поля в прототипе не получилось.
Возможно стоит копать под рефлекцию?
...
Рейтинг: 0 / 0
Typescript как получить имя класса при использовании декоратора
    #39539072
SolidSnake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо добавить, что при выборе транспиляции в ES2015, результат исполнения отличается.
Возвращается то, что хочется получить. Выходит эмуляция ES2015 на ES5 работает не совсем полноценно.
...
Рейтинг: 0 / 0
Typescript как получить имя класса при использовании декоратора
    #39539699
SolidSnake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, нельзя так делать. После минификации JS лесом идут все имена классов.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Typescript как получить имя класса при использовании декоратора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]