Comments 5
Использую сейчас декораторы для реализации статического конструктора класса. Может есть какой-то способ реализовать это без декораторов? А то легко забыть вызвать декоратор, а вставлять проверку при инстанцировании не хочется.
0
В js/ts можно нужный код просто написать непосредственно после объявления класса.
0
Да-да, вручную после каждого подкласса. Этого и хочется избежать.
0
Э… как подкласс и статический конструктор связаны? Если вы хотите вызывать некоторый код для каждого подкласса некоторого класса — то это уже называется "конструктор метакласса", а не "статический конструктор".
0
Называйте как хотите.
Cтатический конструктор отрабатывает лишь на корневом классе, а далее поля просто копируются. А хочется, чтобы конструктор отрабатывал на каждом субклассе, аналогично конструктору экземпляра.
class A {
foo = new String( 'Hello' )
static bar = new String( 'World' )
}
class B extends A {}
alert( ( new B ).foo + ' ' + B.bar ) // 'Hello World'
alert( ( new A ).foo === ( new B ).foo ) // false
alert( A.bar === B.bar ) // trur
Cтатический конструктор отрабатывает лишь на корневом классе, а далее поля просто копируются. А хочется, чтобы конструктор отрабатывал на каждом субклассе, аналогично конструктору экземпляра.
0
Sign up to leave a comment.
Декораторы и рефлексия в TypeScript: от новичка до эксперта (ч.2)