'type cast' is a single idea.
It's a coding/programming term meaning to specify a data type by forcing it, type-casting it - into the desired form.
For instance "3" is a 'string', which is a text data type. The quotes in programming make that quite specific; it's not a number any more, it's a string, even though the string contains what to a human looks exactly like a number. Computers don't see things the way humans do.
So - if we need to take that string & force it to become a number, we type-cast it to an integer [which is a whole number with no decimals]
Our string "3" then becomes the integer 3
in pseudo-code...
string myText = "3"; integer myNumber = (integer)myText;
That (integer)
in brackets is the 'forcing', the type-cast.
Whether to hyphenate or not is probably a UK/US thing. I'm British, we hyphenate a lot more than the Americans.