Skip to main content

Що означає "строга типізація"?

Строга типізація означає, що мова не дозволяє неявно (автоматично) перетворювати значення одного типу в інший, якщо це може призвести до неочікуваної поведінки. Простіше кажучи - TypeScript вимагає, щоб ти явно дотримувався типів і не змішував, наприклад, string та number без явного перетворення.


1. Приклад "нестрогої" типізації (JavaScript)

JavaScript - мова динамічно і слабо типізована, тому вона спробує сама привести типи до потрібного вигляду:

javascript
console.log("5" - 1); // 4 ← рядок "5" неявно перетворюється на число console.log("5" + 1); // "51" ← а тут навпаки, число стало рядком console.log(true + 1); // 2

Така поведінка часто спричиняє непередбачувані помилки.


2. Приклад строгої типізації (TypeScript)

TypeScript - строго типізована мова. Вона не дозволяє "змішувати" типи без твого дозволу:

javascript
let count: number = 5; count = "5"; // Помилка: тип string не можна присвоїти типу number console.log("5" - 1); // Помилка на етапі компіляції

Якщо тобі все-таки потрібно перетворити тип - роби це явно:

javascript
let num = Number("5"); // Явне перетворення рядка в число console.log(num - 1); // 4

3. Різниця між "строгою" і "слабкою" типізацією

ВластивістьСтрога типізаціяСлабка типізація
Перетворення типівТільки явнеЧасто неявне
Перевірка на сумісністьНа рівні компіляціїУ рантаймі
Приклад мовTypeScript, Java, C#, RustJavaScript, PHP, Python
Поведінка при "5" + 1Помилка"51"
Поведінка при "5" - 1Помилка4

4. Чому це важливо

Строга типізація допомагає:

  • запобігати прихованим помилкам і багам;
  • робити код передбачуваним і безпечним;
  • покращувати довгострокову підтримку і масштабування проєкту;
  • отримувати точні підказки IDE й автодоповнення.

Підсумок

Строга типізація - це принцип, за яким мова жорстко контролює сумісність типів і не виконує неявні перетворення, щоб програміст завжди свідомо керував типами даних.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.