When you connect cables between two ports of changeable data types, their data types become synchronized. If you change one port’s data type, then the other port’s data type automatically changes to match.
Some nodes have ports that are synchronized with each other. The Subtract node is an example. It can subtract two Integers, resulting in another Integer; two 3D Points, resulting in another 3D Point; and so on. When you change the data type of one of the node’s ports, that automatically changes the data types of the other ports as well.
On a few nodes, one group of ports shares the same data type and a separate group of ports shares another data type. The Process List node is an example. The Start Processing port has a list data type, and the Item port outputs the items of that list. So if Start Processing has type Text List, Item must have type Text. Similarly, the Finished Processing port has a list data type, and its items must match the type of Processed Item. But Processed Item doesn’t have to match the type of Item.
You can see which ports on a node share a data type by selecting Set Data Type > Generic for each port, then opening the port popovers and observing the numbers on the generic data types (generic #1, generic #2, etc.).