В TypeScript интерфейсы — это мощный способ определения контрактов в вашем коде. Он используется для описания структуры объекта, указывая, какие свойства и методы должны быть у объекта, и их типы.
Интерфейсы — очень полезный инструмент абстракции для обеспечения того, чтобы объекты соответствовали определенной форме или структуре. Их можно использовать для описания структуры функций, классов, массивов и литералов объектов.
пример интерфейса
Вот простой пример, демонстрирующий, как использовать интерфейсы для описания структуры объекта:
interface Person {
firstName: string;
lastName: string;
age?: number; // 问号表示该属性是可选的
}
function greet(person: Person) {
return "Hello, " + person.firstName + " " + person.lastName;
}
const user: Person = {
firstName: "John", lastName: "Doe" };
console.log(greet(user)); // 输出 "Hello, John Doe"
В приведенном выше коде Person
интерфейс определяет свойства, которые должен иметь Person: firstName
и lastName
, которые являются как строками, так и необязательным age
свойством.
Интерфейсы и псевдонимы типов
Хотя интерфейсы в основном используются для описания формы объекта, псевдонимы типов (с использованием ключевого слова) также могут использоваться в TypeScript type
для достижения аналогичного эффекта. Однако между интерфейсами и псевдонимами типов есть несколько важных различий:
- Интерфейсы могут быть расширены и реализованы (используя ключевые слова
extends
иimplements
). - Интерфейс может быть объявлен несколько раз, и все объявления будут объединены в одно.
- Псевдонимы типов более гибкие и могут представлять любой тип, а не только литералы объектов.
В общем, если вы описываете структуру литерала объекта, лучше всего использовать интерфейс. Если вам нужно представить более сложные структуры, такие как типы объединения, типы пересечения и т. д., вы можете использовать псевдонимы типов.