When applied to a construct used in a programming language type-safe means that the type of all entities used is known and can be checked when the program is compiled.
Programs written without type-safety can run into problems at run-time if types prove not to be what was expected.
For example :-