To understand what TypeScript is, first you must be familiar with the concept of typing.
These operators differentiate between entities like the string "123" and the integer 123.
This is because numbers and characters are fundamentally stored differently in memory.
However, this is not the case in strongly typed languages, such as Java and C, which CANNOT declare any variable without an explicitly defined data type.
A data type is a formalization of the way in which information is represented in a computer system, such as the case with Integers and Strings.
Languages such as Java and C are referred to as strongly typed languages, because they depend on these types being defined at compile time, before the high-level language is converted into machine code or byte-code.
Scripts generally automate the execution of code that is exterior to the script itself (such as compiled programs).
This need was partially met by tools such as PropTypes.
However, TypeScript, which was created by Microsoft, is especially helpful for validating the consistency of user-designed data objects.
Type checking is the idea that the shape of a data object remains consistent as it is passed between different parts of a program.