Для справки (это правильный ответ):
Внутри файла определения .d.ts
type MyGlobalFunctionType = (name: string) => void
Если вы работаете в браузере, вы добавляете его в браузер контекст окна путем повторного открытия интерфейса Window:
interface Window {
myGlobalFunction: MyGlobalFunctionType
}
То же самое для NodeJS:
declare module NodeJS {
interface Global {
myGlobalFunction: MyGlobalFunctionType
}
}
Теперь вы объявляете корневую переменную (которая будет фактически жить в окне или глобальном)
declare const myGlobalFunction: MyGlobalFunctionType;
Затем в регулярном файле .ts
, но импортированном как побочный эффект, вы фактически реализуете его:
global/* or window */.myGlobalFunction = function (name: string) {
console.log("Hey !", name);
};
И, наконец, используйте его в другом месте в кодовой базе, либо с помощью :
global/* or window */.myGlobalFunction("Kevin");
myGlobalFunction("Kevin");