Ответ
Да, можно. В 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);