Sobes.tech
Middle

TypeScriptтеги interface жана type ортосунда кандай айырма бар?

sobes.tech AI

AIден жооп

В TypeScript interface и type часто используются для описания типов, но между ними есть отличия:

  • Расширяемость: interface можно расширять (extends) и объединять декларации с одинаковым именем, что удобно для расширения типов в разных частях кода. type не поддерживает декларативное объединение, но можно создавать новые типы через объединение (&) и пересечение (|).

  • Возможности: type более универсален — с его помощью можно описывать не только объекты, но и объединения, пересечения, примитивы, кортежи и т.д. interface предназначен только для описания объектов и классов.

  • Синтаксис: interface более декларативен и читаем, особенно для описания структур данных.

Пример:

interface User {
  name: string;
  age: number;
}

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

В целом, если нужна расширяемость и декларативность — лучше interface. Если нужна гибкость и сложные типы — type.