In programming languages, a type system is a logical system comprising a set of rules that assigns a property called a type to the various constructs of a program.
A type gives semantics to a piece of data.