Примитивы JavaScript и TypeScript
TypeScript улучшает JavaScript, добавляя статические типы — типы, которые проверяются до запуска кода.
Самые базовые типы в TypeScript называются примитивами.
Эти типы — строительные блоки для более сложных типов в ваших приложениях.
TypeScript включает все примитивы JavaScript, а также собственные дополнительные возможности работы с типами.
Вот пять примитивных типов, которые вы будете использовать чаще всего.
Boolean
Тип boolean хранит значение истина/ложь.
Используйте его для флагов, переключателей и условий.
Пример
Переменной isActive тип boolean задан явно. У hasPermission аннотации нет, поэтому TypeScript выводит тип boolean из значения false.
boolean двумя способами.
Объявите isActive с явной аннотацией boolean и значением true, а hasPermission — со значением false без аннотации, отметив в комментарии, что TypeScript выводит тип boolean. Ничего не выводится.
Вывод: программа на TypeScript и захваченный вывод
let isActive: boolean = true;
let hasPermission = false; // TypeScript выводит тип 'boolean'
Number
Тип number хранит как целые числа, так и десятичные дроби.
TypeScript использует один и тот же тип number для любого числового значения, независимо от того, как оно записано.
Пример
Десятичные, шестнадцатеричные, двоичные, восьмеричные значения и значения с плавающей точкой — все они имеют тип number.
number для любой формы записи числового литерала.
Объявите пять переменных типа number: decimal (6), hex (0xf00d), binary (0b1010), octal (0o744) и float (3.14), в каждом комментарии назвав соответствующую систему записи. Ничего не выводится.
Вывод: программа на TypeScript и захваченный вывод
let decimal: number = 6;
let hex: number = 0xf00d; // Шестнадцатеричное
let binary: number = 0b1010; // Двоичное
let octal: number = 0o744; // Восьмеричное
let float: number = 3.14; // С плавающей точкой
String
Тип string хранит текст.
Строки можно записывать в одинарных кавычках ('), двойных кавычках (") или обратных кавычках (`). Обратные кавычки создают шаблонные строки, в которые можно встраивать значения с помощью ${...}.
Пример
Все три способа записи кавычек дают string. Шаблонная строка в sentence вставляет fullName и результат выражения age + 1.
string с двойными кавычками, одинарными кавычками и шаблонной строкой.
Объявите color («синий»), fullName ('John Doe'), переменную age типа number (30) и переменную sentence типа string, построенную из шаблонной строки, которая вставляет fullName и age + 1. Ничего не выводится.
Вывод: программа на TypeScript и захваченный вывод
let color: string = "синий";
let fullName: string = 'John Doe';
let age: number = 30;
let sentence: string = `Привет, меня зовут ${fullName}, и в следующем году мне будет ${age + 1}.`;
BigInt (ES2020+)
Тип bigint хранит целые числа, большие чем 2^53 - 1, — это самое большое целое число, которое тип number может представить точно.
Пример
BigInt(...) создаёт значение типа bigint, и TypeScript выводит этот тип для hugeNumber.
bigint для целых чисел, больших чем 2^53 - 1.
Объявите константу hugeNumber, вызвав BigInt(9007199254740991), и позвольте TypeScript вывести её тип. Ничего не выводится.
Вывод: программа на TypeScript и захваченный вывод
const hugeNumber = BigInt(9007199254740991);
Symbol
Тип symbol — это уникальный идентификатор. Два символа никогда не равны друг другу, даже если они созданы с одним и тем же описанием.
Символы полезны для уникальных ключей свойств и констант.
Пример
uniqueKey — это symbol, используемый как вычисляемый ключ свойства в obj. Чтение obj[uniqueKey] выводит сохранённый текст.
symbol, используемый как уникальный ключ объекта.
Создайте константу uniqueKey типа symbol из Symbol('описание'), постройте объект obj, вычисляемым ключом которого является uniqueKey со значением 'Это уникальное свойство', затем выведите obj[uniqueKey] в консоль.
Вывод: программа на TypeScript и захваченный вывод
const uniqueKey: symbol = Symbol('описание');
const obj = {
[uniqueKey]: 'Это уникальное свойство'
};
console.log(obj[uniqueKey]); // "Это уникальное свойство"