Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що означає "строга типізація"?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Строга типізація** означає, що мова **не дозволяє неявно (автоматично) перетворювати значення одного типу в інший**, якщо це може призвести до неочікуваної поведінки. **Ключове:** TypeScript вимагає, щоб ти явно дотримувався типів і не змішував, наприклад, `string` та `number` без явного перетворення.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення**Строга типізація** означає, що мова **не дозволяє неявно (автоматично) перетворювати значення одного типу в інший**, якщо це може призвести до неочікуваної поведінки. Простіше кажучи - **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#, Rust | JavaScript, PHP, Python | | Поведінка при "5" + 1 | Помилка | "51" | | Поведінка при "5" - 1 | Помилка | 4 | --- ### 4. Чому це важливо Строга типізація допомагає: - запобігати **прихованим помилкам** і багам; - робити код **передбачуваним** і безпечним; - покращувати **довгострокову підтримку** і масштабування проєкту; - отримувати **точні підказки IDE** й автодоповнення. --- ### Підсумок > **Строга типізація** - це принцип, за яким мова **жорстко контролює сумісність типів** > і **не виконує неявні перетворення**, щоб програміст завжди свідомо керував типами даних.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.