I guess a type is sort of 'information about information', of a fairly limited kind, such that it can be compiled away in the best case: ie 1) if two functions were compiled by the same language and 2) we trust the compiler/linker/runtime, and 3) they exchange data (probably as a RAM pointer), then 4) we can assume that 'the data types are compatible' for some definition of compatible including type equivalence / subtyping / field-based typing.
But across the Internet, we don't get 1, 2 or 3.