Tengo una propiedad de superclase con un tipo genérico, por ejemplo:
class Super { static get foo(): Record<string, any> { return ... } }Pensé que podría anular el tipo de esta manera:
class Sub extends Super { static foo: SubType; } Sin embargo, esto establece Sub.foo en undefined . Quiero que Sub.foo mantenga el mismo valor, pero tenga un nuevo tipo. es posible?
El tipo de Sub.foo es diferente porque Super.foo depende de otras propiedades estáticas de la subclase.
Creo que implementar una interfaz debería funcionar, pero sería bueno saber si hay otra forma.
Use declare para evitar compilar la variable en el Javascript real:
class Sub extends Super { declare static foo: SubType; }