如何在节点上全局公开任何 API

How to expose any API globally on Node

我有一个用于个人后端项目的 Web 开发框架。所有网络应用程序都围绕我的框架展开,API 相当大,因此在每个文件中导入它变得很累人和重复。

我想到的解决方案是在我的程序中使用这段代码main/entry点

Object.assign(global, require("@mycompany/myframework"));

现在我可以访问所有 classes、常量和函数,而无需在每个文件中导入它们。

唯一的问题是我的框架是用 TypeScript 编写的,但我的 IDE 无法识别全局类型,因此在使用我的任何框架 class 后,editor/IDE 将报告 API 尚未导入。

你有这个问题的完整解决方案吗?

为此你需要一个像.d.ts这样的类型声明文件 在里面你应该添加如下内容

declare module NodeJS {
 interface Global {
  myGlobalFunction: MyGlobalFunctionType
 }
}

这有助于您创建模块并将其与全局类型声明命名空间断开连接。 不确定是否对您有帮助,但这是处理这种情况的方法之一。