What I tend to do (usually for naming reasons rather than datatype reasons); is when I first start developing, use the field info tool and write an output to an xlsx file. The field info tool will produce detail regarding name, type and size, and you can also use this file to build comments regarding fields (a data dictionary of sorts).
I will then input this as a separate input on the canvas, and join this against a field info of the current input, you can join on both name and type. If anything falls out of either the left or right side, then there is a problem, and you can report the problem to the results log by using the 'message' tool.
You may also consider 'forcing' the datatypes of your fields which can be done in the select type, where the active datatype will be followed by ':Forced', this change will mean that field will always be forced to that datatype.