Enhance TypeError with properties
Sacrifies a little of compleness in favor of error message precision.
Add missing spec for TypeError.