Это интерфейс, который содержит сигнатуру функции. Функция, которая принимает аргумент типа FileDialogProps
и возвращает FileDialog
. Таким образом, переменная этого типа будет вызываться:
let fact:FileDialogFactory;
let dialog = fact(props);
Интерфейс может иметь несколько сигнатур функций, они будут действовать как перегрузки, и любая из них будет вызываться с использованием тех же правил, которые применяются для разрешения перегрузки функции:
export interface FileDialogFactory {
(props: FileDialogProps): FileDialog;
(props: FileDialogProps, isOpen: boolean): FileDialog;
}
let fact:FileDialogFactory;
let dialog = fact(props);
let dialog2 = fact(props, true); // also ok