Любая функция, например:
function foo(options: any): void;
, может быть выражена как вызываемый объект, например:
const foo: {
(options: any): void;
}
Кроме того, любой объект может иметь дополнительные свойства. Эти свойства также могут быть вызваны, поэтому совершенно верно следующее:
declare namespace GlobalNameSpace {
const foo: {
(options: any): void;
bar1: { (arg: any): void };
foo2: { (arg: any): void };
}
}
Обратите внимание, что переменная const
немного отличается от function
. Функции поднимаются например. Но в приведенном выше случае они эквивалентны.