Final answer:
The feature that prevents assigning values of an incorrect data type in programming languages is known as type safety or type checking.
Step-by-step explanation:
The feature of programming languages that prevents assigning values of an incorrect data type is known as type safety or type checking. This is a mechanism within the language that ensures only appropriately typed variables can hold a given value, helping to prevent errors and ensuring data integrity throughout the program.
Languages enforce type safety to varying degrees; statically-typed languages like Java and C++ enforce type safety at compile time, whereas dynamically-typed languages like Python and JavaScript perform type checking at runtime.
For example, in a statically-typed language, attempting to assign a string value to an integer variable would result in a compile-time error:
int number = "hello"; // This will cause a compile-time error.
However, in dynamically-typed languages, a similar assignment may not cause an immediate error but could lead to logic errors or runtime exceptions later in the code's execution:
let number = "hello"; // No error at assignment in JavaScript.
It ensures that variables can only hold values of the data type they are declared for, with statically-typed languages enacting these checks at compile time and dynamically-typed languages at runtime.