But we can see in model.js that attributes and validations are not inherited when we have a structure as above. But we need this to happen in our case, where given an instance of the child class, we are able to access the super class's attributes and validations.

So just wanted to ask what would be the recommended best practice in this case.. please could you advice on this..

Replies(1)

Override the attributes plugin and 'fix' it to perform proper inheritance. There is not going to be an official fix as the behavior is deemed by design, which I found out when filing issue #358 CanJS.

(In my honest opinion; having no way to 'untype' an attribute is a very weak reason to break the principle of least surprise in this way, but if that's the way the developers want to move forward; so be it. I'll just happily keep monkey-patching sane behavior back in..)