Pull to refresh

Comments 5

Использую сейчас декораторы для реализации статического конструктора класса. Может есть какой-то способ реализовать это без декораторов? А то легко забыть вызвать декоратор, а вставлять проверку при инстанцировании не хочется.
В js/ts можно нужный код просто написать непосредственно после объявления класса.
Да-да, вручную после каждого подкласса. Этого и хочется избежать.
Э… как подкласс и статический конструктор связаны? Если вы хотите вызывать некоторый код для каждого подкласса некоторого класса — то это уже называется "конструктор метакласса", а не "статический конструктор".
Называйте как хотите.

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татический конструктор отрабатывает лишь на корневом классе, а далее поля просто копируются. А хочется, чтобы конструктор отрабатывал на каждом субклассе, аналогично конструктору экземпляра.
Sign up to leave a comment.