TypeTyping in general means that the choice of possible data structures manipulated by a program can be conceptually divided into groups of objects with some homogeneity (e.g. integers, floating-point numbers, lists, arrays, hash-tables, etc.); the term for these groups is called a type.
A variable's type is the upper bound of the range of values that a variable can assume during the execution of a program.
Depending on the type of an object, different interfaces will be available to interact with it (numbers are subject to arithmetic operations; lists can be deconstructed into head and tail; functions can be applied; etc.), and different algorithms will be used to implement common interfaces (adding two integers is not same as adding two floating-point numbers).