TypeScript Прості типи
TypeScript підтримує деякі прості типи (примітиви), які ви можете знати.
У JavaScript і TypeScript є три основні примітиви.
boolean
- true та false значенняnumber
- цілі числа та значення з плаваючою комоюstring
- текстові значення, наприклад "TypeScript Rocks"
Є також 2 менш поширені примітиви, які використовуються в пізніших версіях Javascript і TypeScript.
bigint
- цілі числа та значення з плаваючою комою, але допускаються більші від’ємні та додатні числа, ніж типnumber
.symbol
використовуються для створення глобального унікального ідентифікатора.
Призначення типу
Під час створення змінної TypeScript призначає тип двома основними способами:
- Явно
- Неявно
В обох прикладах нижче firstName
має тип string
Явний тип
Явний - написання типу:
let firstName: string = "Dylan";
Спробуйте самі »
Явні призначення типу легше читати та призначається більш навмисно.
Неявний тип
Неявні – TypeScript "вгадає" тип на основі призначеного значення:
let firstName = "Dylan";
Спробуйте самі »
Примітка. Якщо TypeScript "вгадує" тип значення, це називається infer.
Неявне призначення змушує TypeScript виводити значення.
Неявні призначення типів коротші, швидші для введення та часто використовуються під час розробки та тестування.
Помилка в призначенні типу
TypeScript видасть помилку, якщо типи даних не збігаються.
Приклад
let firstName: string = "Dylan"; // тип string
firstName = 33; // намагається повторно призначити значення іншому типу
Спробуйте самі »
Неявне призначення типу зробило б firstName
менш помітним як string
, але обидва видадуть помилку:
Приклад
let firstName = "Dylan"; // виведе для типу string
firstName = 33; // намагається повторно призначити значення іншому типу
Спробуйте самі »
JavaScript не видаватиме помилку для невідповідних типів.
Неможливо зробити висновок
TypeScript не завжди може правильно визначити тип змінної. У таких випадках буде встановлено тип any
, що вимкне перевірку типу.
Приклад
// Неявне будь-яке, оскільки JSON.parse не знає, який тип даних він повертає, тому це може бути "any"...
const json = JSON.parse("55");
// Більшість очікує, що json буде об’єктом, але це може бути рядок або число, як у цьому прикладі
console.log(typeof json);
Спробуйте самі »
Цю поведінку можна вимкнути, увімкнувши noImplicitAny
як параметр у проєкті TypeScript tsconfig.json
. Це файл конфігурації JSON для налаштування поведінки деяких TypeScript.
Примітка: ви можете побачити примітивні типи з великої літери, як Boolean
.
boolean !== Boolean
Для цього підручника просто знайте, як використовувати значення в нижньому регістрі, а у верхньому регістрі – для дуже конкретних обставин.