There is a shame that we have to emulate Abstractions or virtual members. In most cases we can use Interfaces to define some required structure. Of course this is useful to valid composition.
When we would like to set composition over inheritable that will goes to use some tricks. We can image situation in normal implementation:
public interface IFactory { function create(description:Object):Object; }