В предыдущих уроках мы представили некоторые основные типы в TypeScript и обсудили, как их использовать. В этом уроке мы сосредоточимся на одной из ключевых особенностей TypeScript: интерфейсах.
Интерфейсы в TypeScript — это способ определить контракт для объекта или класса. Они определяют форму объекта, включая свойства и методы, которыми он должен обладать. Это может быть очень полезно для создания повторно используемых компонентов и обеспечения того, чтобы разные части вашего кода работали с одними и теми же структурами данных.
Вот пример того, как определить и использовать интерфейс в TypeScript:
interface Point { x: number; y: number; } function drawPoint(point: Point) { // do something with the point object } let myPoint: Point = { x: 1, y: 2 }; drawPoint(myPoint);
В этом примере мы определили интерфейс с именем Point
, который указывает, что объект этого типа должен иметь свойства x
и y
, оба из которых являются числами. Затем мы определили функцию drawPoint
, которая принимает объект Point
в качестве аргумента. Затем мы создали объект с именем myPoint
, соответствующий интерфейсу Point
, и передали его функции drawPoint
.
В дополнение к определению формы объекта интерфейсы также могут использоваться для определения формы функции. Это называется сигнатурой функции. Вот пример использования интерфейса для определения сигнатуры функции:
interface SearchFunc { (source: string, substring: string): boolean; } let mySearch: SearchFunc = function(source: string, substring: string) { // do something with the source and substring return true; };
В этом примере мы определили интерфейс с именем SearchFunc
, который указывает сигнатуру для функции, которая принимает string
и string
в качестве аргументов и возвращает boolean
. Затем мы создали переменную с именем mySearch
, реализующую интерфейс SearchFunc
, и присвоили ей функцию, соответствующую сигнатуре.
Работа с интерфейсами в TypeScript может помочь вам написать более модульный и удобный для сопровождения код. Чтобы узнать больше об интерфейсах, обязательно ознакомьтесь с другими статьями этой серии. Удачного кодирования!