Sobes.tech
Back to questions
Junior — Middle
86

В чем отличие между типами и классами в TypeScript?

Answer from AI

sobes.tech AI

В TypeScript классы — это шаблоны для создания объектов с определённой структурой и поведением (методами). Они компилируются в JavaScript и используются во время выполнения.

Типы (type) — это конструкции, которые существуют только на этапе компиляции и служат для описания формы данных, объединения, пересечения и т.д. Они не влияют на сгенерированный код.

Основные отличия:

  • Классы могут иметь реализацию методов, конструкторы, наследование, инкапсуляцию.
  • Типы описывают структуру данных, могут объединять несколько типов, создавать алиасы.
  • Классы существуют во время выполнения, типы — только во время компиляции.

Пример:

class User {
  constructor(public name: string) {}
  greet() {
    console.log(`Hello, ${this.name}`);
  }
}

type UserType = {
  name: string;
  age: number;
};

const user1 = new User('Alice');
user1.greet(); // Hello, Alice

const user2: UserType = { name: 'Bob', age: 30 };

Здесь класс User создаёт объекты с методом greet, а UserType просто описывает структуру объекта.