Можно ли написать функцию в interface в TypeScript

«Можно ли написать функцию в interface в TypeScript» — вопрос из категории TypeScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, можно. В TypeScript интерфейсы могут содержать сигнатуры методов (функций), которые должны быть реализованы в объектах, соответствующих этому интерфейсу. Это позволяет описывать не только структуру данных, но и поведение.

Пример:

interface Person {
  name: string;
  greet(): string; // сигнатура метода
}

const john: Person = {
  name: 'John',
  greet() {
    return `Hello, my name is ${this.name}`;
  }
};

Также можно описывать callable интерфейсы (как функции):

interface SearchFunc {
  (source: string, subString: string): boolean;
}

const mySearch: SearchFunc = (src, sub) => src.includes(sub);