Skip to main content

Типы данных

TypeScript — это строго типизированный язык программирования, который расширяет JavaScript, добавляя статическую типизацию. В TypeScript используются как базовые типы данных (примитивы), так и продвинутые типы, которые позволяют более точно описывать структуру данных. Вот основные типы данных в TypeScript:

1. Примитивные типы (Primitive Types)

  1. number - Числа, включая целые и дробные.
  2. string - Строки текста.
  3. boolean - логические значения: true или false.
  4. null - Значение, представляющее отсутствие значения.
  5. undefined - Значение, которое присваивается переменной, если она не инициализирована.
  6. symbol - Уникальные и неизменяемые значения, часто используемые как ключи объектов.

2. Специальные типы

Эти типы используются для описания специфических случаев.

  1. any - Отключает проверку типов. Переменная может хранить любое значение.
let data: any = "Hello";
data = 42; // Ошибки не будет
  1. unknown - Более безопасная альтернатива any. Тип переменной должен быть уточнён перед использованием.
let value: unknown = "Hello";
if (typeof value === "string") {
console.log(value.toUpperCase()); // Безопасно
}
  1. void - Используется для функций, которые не возвращают значение.
function logMessage(): void {
console.log("Hello");
}
  1. never - Используется для функций, которые никогда не завершаются (например, выбрасывают исключение или работают бесконечно).
function throwError(message: string): never {
throw new Error(message);
}

3. Объектные типы (Object Types)

Эти типы используются для описания сложных структур данных.

  1. object - Общий тип для объектов.
let user: object = { name: "Alice", age: 25 };
  1. Массивы (Arrays) - Массивы могут быть описаны двумя способами:
    • тип[]
    • Array<тип>
let numbers: number[] = [1, 2, 3];
let names: Array<string> = ["Alice", "Bob"];
  1. Кортежи (Tuples) - Массивы фиксированной длины с определёнными типами для каждого элемента.
let user: [string, number] = ["Alice", 25];
  1. Функции (Functions) - Типы для аргументов и возвращаемых значений функций.
function add(a: number, b: number): number {
return a + b;
}
  1. Классы (Classes) - TypeScript поддерживает ООП, включая классы, наследование и модификаторы доступа.
class User {
name: string;
constructor(name: string) {
this.name = name;
}
}

4. Продвинутые типы

Эти типы позволяют создавать более гибкие и мощные структуры данных.

  1. Интерфейсы (Interfaces) - Используются для описания структуры объектов.
interface User {
name: string;
age: number;
}
let user: User = { name: "Alice", age: 25 };
  1. Типы-объединения (Union Types) - Переменная может иметь один из нескольких типов.
let id: string | number = "123";
id = 123; // Ошибки не будет
  1. Типы-пересечения (Intersection Types) - Комбинирует несколько типов в один.
interface Name {
name: string;
}
interface Age {
age: number;
}
type User = Name & Age;
let user: User = { name: "Alice", age: 25 };
  1. Литеральные типы (Literal Types) - Переменная может принимать только определённые значения.
let direction: "left" | "right" | "up" | "down" = "left";
  1. Типы-шаблоны (Generics) - Позволяют создавать универсальные компоненты, которые работают с разными типами.
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>("Hello");

5. Дополнительные типы

  1. enum - Перечисления, которые позволяют задавать именованные константы.
enum Color {
Red,
Green,
Blue,
}
let color: Color = Color.Red;
  1. Типы для работы с DOM - TypeScript предоставляет встроенные типы для работы с DOM-элементами, например, HTMLElement, HTMLInputElement и т.д.
const element: HTMLElement = document.getElementById("myElement");

Итог

TypeScript предоставляет богатую систему типов, которая включает:

  • Примитивные типы (number, string, boolean и т.д.).
  • Специальные типы (any, unknown, void, never).
  • Объектные типы (массивы, кортежи, функции, классы).
  • Продвинутые типы (интерфейсы, объединения, пересечения, дженерики).

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

🚀 Источник: DeepSeek