В чём отличие interface от type в TypeScript?
Ответ от нейросети
sobes.tech 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.