🚀 Вам бесплатно доступен тренажёр по HTML и CSS.

TypeScript — это JavaScript с типами, что логично. А вот и они, слева направо:

Boolean (булев тип)

Тип данных Boolean представляет логическое значение true или false. Вот пример:

let isWrote: boolean = false;

Что может пойти не так. Если мы не укажем тип и присвоим значение, не являющееся булевым, мы можем получить неожиданный результат, например, строка будет оценена как true.

let isDone: boolean = false;
if (isDone === "false") { // Ошибка: Это условие всегда будет ложным, поскольку типы 'boolean' и 'string' не пересекаются.
	console.log("This should not be printed");
}

В этом примере мы правильно определили переменную isDone как булеву. Однако когда мы сравним isDone со строкой "false" с помощью оператора строгого равенства ===, TypeScript выдаст ошибку типа, поскольку эти два типа не пересекаются. Чтобы исправить эту ошибку, нам нужно сравнить isDone с булевым значением false, как показано ниже:

let isDone: boolean = false;
if (isDone === false) { // Ошибки нет
  console.log("Этот текст выведется");
}

Хочется разобраться в TypeScript?

Приходите на наш курс. Там про типы пишут живые люди, а не нейросети.

Number (число)

Тип данных Number представляет как целочисленные значения, так и значения с плавающей точкой. Вот пример использования для чисел разных типов, включая шестнадцатеричные, двоичные и восьмеричные.

let decimal: number = 6;

let hex: number = 0xf00d;

let binary: number = 0b1010;

let octary: number = 0o744;

Что может пойти не так. Если мы попытаемся присвоить переменной с типом Number нечисловое значение, мы можем получить NaN (Not a Number).

let count: number = "5"; // Error: Type 'string' is not assignable to type 'number'.
let result = count * 2;
console.log(result);

В этом примере мы определили переменную count как число. Однако когда мы попытаемся присвоить count строку "5", TypeScript выдаст ошибку типа, поскольку эти два типа несовместимы. Чтобы исправить эту ошибку, нам нужно присвоить count число, как показано ниже:

let count: number = 5;
let result = count * 2;
console.log(result); // Выведется 10

String (строка)

Тип данных String представляет собой последовательность символов.

let color: string = "red";

Что может пойти не так. Если мы используем двойные кавычки для строки с одинарными кавычками или наоборот, TypeScript выдаст ошибку.

Array (массив)

Тип данных Array представляет собой коллекцию элементов одного типа.

let list: number[] = [1, 2, 3];

Что может пойти не так. Если мы попытаемся добавить элемент другого типа, TypeScript выдаст ошибку.

let list: number[] = [1, 2, 3];
list.push("four"); // Error: Argument of type 'string' is not assignable to parameter of type 'number'

В этом примере мы определили переменную list как массив чисел. Однако когда мы попытаемся поместить строку "four" в массив list, TypeScript выдаст ошибку типа, поскольку строки не могут быть присвоены числам. Чтобы исправить эту ошибку, нам нужно либо удалить элемент строки, либо изменить переменную list на массив строк, как показано ниже:

// Вариант 1: не добавлять строковую переменную
let list: number[] = [1, 2, 3];
list.push(4);
console.log(list); // Вывод: [1, 2, 3, 4]

// Вариант два: использовать массив строк
let list: string[] = ["one", "two", "three"];
list.push("four");
console.log(list); // Output: ["one", "two", "three", "four"]

Tuple (кортеж)

Тип данных Tuple представляет собой массив с фиксированным количеством элементов разных типов.

let x: [string, number];
x = ["привет", 10];

Что может пойти не так. Если мы попытаемся добавить больше или меньше элементов, чем заданное число, TypeScript выдаст ошибку.

Enum (перечисление)

Тип данных Enum представляет собой набор именованных констант.

enum Color {
	Red,
	Green,
	Blue,
}

let c: Color = Color.Green;

Что может пойти не так. Если мы попытаемся присвоить значение, которого нет в наборе именованных констант, TypeScript выдаст ошибку.

Any

Тип данных Any представляет любой тип.

let notSure: any = 4;

notSure = "может быть, вместо этого строка";

notSure = false;

Что может пойти не так. Использование Any противоречит идее TypeScript, поскольку Any позволяет присваивать переменной любой тип.


«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

ТелеграмПодкастБесплатные учебники

Читать дальше

9 книг по JavaScript для начинающих в 2024

9 книг по JavaScript для начинающих в 2024

🚀 Вам бесплатно доступен тренажёр по HTML и CSS.

Все вокруг говорят, что книги — прошлый век. Но вовремя прочитанная хорошая книжка может здорово помочь в изучении нового языка или технологии, а то и вообще целиком объяснить какую-нибудь важную штуку. Например, какие бывают алгоритмы, или зачем нужен рефакторинг. К тому же, хоть фреймворки меняются каждый год, основы обычно долго не меняются.

Мы опросили знакомых разработчиков, узнали, что читают они сами, и предлагаем вам подборку хороших книг по JavaScript.

Читать дальше
JS
  • 6 марта 2024
Объект URL в JavaScript: полный разбор

Объект URL в JavaScript: полный разбор

🚀 Вам бесплатно доступен тренажёр по HTML и CSS.

Объект URL в JavaScript представляет URL-адрес и предоставляет удобные методы для работы с ним. Он позволяет анализировать, конструировать и декодировать URL-адреса.

Создать объект URL можно двумя способами:

Конструктор URL() — самый распространённый способ, в котором вы передаёте любой URL в виде строки в качестве аргумента.

const url = new URL("https://www.example.com/path?query=123#hash");

Использование window.location — это глобальный объект в браузерах, который содержит информацию о текущем URL.

const currentUrl = new URL(window.location.href);
Читать дальше
JS
  • 23 января 2024
Генерация QR-кодов на JS в 4 шага. Node.js + qrcode

Генерация QR-кодов на JS в 4 шага. Node.js + qrcode

🚀 Вам бесплатно доступен тренажёр по HTML и CSS.

Давайте сделаем простой REST API на Node.js и Express, который будет генерировать QR-коды для любой ссылки. Если у вас ещё не установлены Node.js и npm, установите их с официального сайта.

Читать дальше
JS
  • 22 ноября 2023
Знакомство с JavaScript

Знакомство с JavaScript

🚀 Вам бесплатно доступен тренажёр по HTML и CSS.

Теперь, когда вы знаете, как создать структуру веб-страницы с помощью HTML и оформить ее стилями с помощью CSS, пришло время оживить её с помощью JavaScript (JS). JavaScript — это мощный язык программирования, который используется для создания интерактивных и динамических веб-сайтов.

Вы можете добавить JavaScript в ваш HTML-документ двумя способами:

Встроенный JavaScript: непосредственно в HTML-документ, в тегах <script>:

<script>
  alert("Привет, мир!");
</script>

Внешний JavaScript: подключение внешнего .js файла к HTML-документу:

<script src="script.js"></script>
Читать дальше
JS
  • 1 ноября 2023
Событие onclick в JS на примерах

Событие onclick в JS на примерах

🚀 Вам бесплатно доступен тренажёр по HTML и CSS.

Интерактивность — ключевой компонент любого современного сайта. И одним из наиболее часто используемых событий для создания интерактивности является событие onclick. В этой статье мы подробно разберёмся, что такое событие onclick, как его использовать и приведем примеры применения.

Событие onclick — это событие JavaScript, которое активируется, когда пользователь кликает на определенный элемент страницы. Это может быть кнопка, ссылка, изображение или любой другой элемент, на который можно нажать.

Читать дальше
JS
  • 30 октября 2023
Как перевернуть сайт. Самая короткая инструкция

Как перевернуть сайт. Самая короткая инструкция

Не представляем, зачем это может понадобиться, но не могли пройти мимо.

Никакой магии. Мы вызываем JavaScript-функцию rotateBody(), которая применяет свойство transform с значением rotate(180deg) к элементу <body>. Когда вы нажмете на кнопку «Перевернуть», всё, что находится внутри <body> будет повернуто на 180 градусов (то есть, встанет вниз головой)

function rotateBody() {
  document.body.style.transform = 'rotate(180deg)';
}

<button onclick="rotateBody()">Перевернуть</button>

Но такой код повернёт страницу только один раз. Если нужно, чтобы она возвращалась обратно при втором клике, усложним код:

let isRotated = false;

function rotateBody() {
  if (isRotated) {
    document.body.style.transform = 'rotate(0deg)';
    document.body.style.direction = "ltr";
  } else {
    document.body.style.transform = 'rotate(180deg)';
    document.body.style.direction = "rtl";
  }
  isRotated = !isRotated;
}

Надеемся, вы прочитали это описание до того, как нажать на кнопку.

JS
  • 25 октября 2023
Как узнать геолокацию: Geolocation API

Как узнать геолокацию: Geolocation API

🚀 Вам бесплатно доступен тренажёр по HTML и CSS.

Geolocation API позволяет сайтам запрашивать, а пользователям предоставлять свое местоположение веб-приложениям. Геолокация может использоваться для выбора города в интернет-магазине, отображения пользователя на карте или навигации в ближайший гипермаркет.

Основной метод Geolocation API — getCurrentPosition(), но есть и другие методы и свойства, которые могут пригодиться.

Читать дальше
JS
  • 16 октября 2023
Что такое localStorage и как им пользоваться

Что такое localStorage и как им пользоваться

🚀 Вам бесплатно доступен тренажёр по HTML и CSS.

localStorage — это место в браузере пользователя, в котором сайты могут сохранять разные данные. Это как ящик для хранения вещей, которые не исчезнут, даже если вы выключите компьютер или закроете браузер.

До localStorage разработчики часто использовали cookies, но они были не очень удобны: мало места и постоянная передача данных туда-сюда. LocalStorage появился, чтобы сделать процесс более простым и эффективным.

Читать дальше
JS
  • 12 октября 2023