Kodokon kodokon.com

Примитивные типы, массивы и простые объединения

Изучи три базовых типа, научись типизировать массив и создавать объединения типов.

7 мин · 3 вопросов

Открыть этот урок в Kodokon

Примитивные типы - это базовые кирпичики TypeScript. Три самых распространённых: string для текстов (всегда в кавычках), number для всех чисел (и целых, и дробных) и boolean для значений true или false. Обрати внимание: они пишутся со строчной буквы.

TYPESCRIPT
let city: string = "Paris";
let temperature: number = 21.5;
let isRaining: boolean = false;
По одному примеру на каждый примитивный тип.

Массив - это упорядоченный список значений. Чтобы его типизировать, ты пишешь тип элементов, а за ним квадратные скобки: number[] читается как «массив чисел». Дальше TypeScript проверяет каждый элемент, который ты добавляешь.

TYPESCRIPT
const scores: number[] = [12, 15, 9];
const guests: string[] = ["Nadia", "Louis"];

scores.push(18); // accepted: 18 is a number
// scores.push("twenty"); -> error: not a number
Массив всегда сохраняет один и тот же тип элементов.

Иногда значение вполне законно может иметь несколько типов. Объединение записывается через вертикальную черту | и читается как «или»: тип string | number принимает либо текст, либо число. Ты также можешь создать объединение конкретных значений, чтобы ограничить возможные варианты.

TYPESCRIPT
let answer: string | number;
answer = "forty-two"; // accepted
answer = 42;          // also accepted

type Size = "small" | "medium" | "large";
let cupSize: Size = "medium";
// cupSize = "xl"; -> error: value not allowed
Два объединения: объединение типов и объединение значений.

Проверка знаний

Убедись, что запомнил ключевые моменты этого урока.

  1. Какой тип ты бы использовал для значения true?
    • string
    • number
    • boolean
  2. Как объявить массив, который содержит только числа?
    • let list: number[]
    • let list: [number]
    • let list: array
  3. Что означает тип string | number?
    • Значение одновременно и текст, и число
    • Значение - это либо текст, либо число
    • Значение обязательно должно быть текстом
    • Значением может быть что угодно