Що означає "строга типізація"?
Строга типізація означає, що мова не дозволяє неявно (автоматично) перетворювати значення одного типу в інший, якщо це може призвести до неочікуваної поведінки.
Простіше кажучи - TypeScript вимагає, щоб ти явно дотримувався типів і не змішував, наприклад, string та number без явного перетворення.
1. Приклад "нестрогої" типізації (JavaScript)
JavaScript - мова динамічно і слабо типізована, тому вона спробує сама привести типи до потрібного вигляду:
console.log("5" - 1); // 4 ← рядок "5" неявно перетворюється на число
console.log("5" + 1); // "51" ← а тут навпаки, число стало рядком
console.log(true + 1); // 2Така поведінка часто спричиняє непередбачувані помилки.
2. Приклад строгої типізації (TypeScript)
TypeScript - строго типізована мова. Вона не дозволяє "змішувати" типи без твого дозволу:
let count: number = 5;
count = "5"; // Помилка: тип string не можна присвоїти типу number
console.log("5" - 1); // Помилка на етапі компіляціїЯкщо тобі все-таки потрібно перетворити тип - роби це явно:
let num = Number("5"); // Явне перетворення рядка в число
console.log(num - 1); // 43. Різниця між "строгою" і "слабкою" типізацією
| Властивість | Строга типізація | Слабка типізація |
|---|---|---|
| Перетворення типів | Тільки явне | Часто неявне |
| Перевірка на сумісність | На рівні компіляції | У рантаймі |
| Приклад мов | TypeScript, Java, C#, Rust | JavaScript, PHP, Python |
| Поведінка при "5" + 1 | Помилка | "51" |
| Поведінка при "5" - 1 | Помилка | 4 |
4. Чому це важливо
Строга типізація допомагає:
- запобігати прихованим помилкам і багам;
- робити код передбачуваним і безпечним;
- покращувати довгострокову підтримку і масштабування проєкту;
- отримувати точні підказки IDE й автодоповнення.
Підсумок
Строга типізація - це принцип, за яким мова жорстко контролює сумісність типів і не виконує неявні перетворення, щоб програміст завжди свідомо керував типами даних.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.