Do we really need to do type checking here? What's the rationale, rather than just checking than a property is present with this name?

(My background as a Python dev relies a lot on duck typing, but maybe this is not something we want to do in JS)