Когда интерфейс следует этому шаблону:
interface Callable {
(): any
}
говорят, что все, что реализует этот интерфейс, является вызываемым или имеет подпись вызова .Это причудливый способ описать функции и методы.Существуют и другие варианты этой записи:
interface GenericCallable<T> {
(): T
}
interface Newable {
new (): any
}
interface GenericNewable<T> {
new (): T
}
, где те, у которых ключевое слово new
, являются newable , что означает, что они вызываются с использованием new
ключевое слово (например, классы).
Вы также можете иметь интерфейс, который может быть вызываемым и обновляемым одновременно.Объект Date
, встроенный в стандартную библиотеку, является одним из них:
interface DateConstructor {
new(): Date;
(): string;
}
Короче говоря, интерфейсы также могут описывать функции, и GenericIdentityFn
является примером такого интерфейса.