TypeScript - 如何在 Node.js 中声明全局变量

3
如何全局声明一些自定义变量?

使用示例

import './logger'; // custom module: Global logger is initialized. (using winston)

log.info('This is custom global logger.'); // access to log variable globally.

也许是globalThis?https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/globalThis - Shanon Jackson
@ShanonJackson 在 node.js 上编程,而不是在浏览器中。 - Kunie
1个回答

3
在TypeScript中,声明全局块用于描述向全局命名空间添加变量或声明全局变量。

Node.js

import * as io from 'socket.io';

declare global {
  namespace NodeJS {
    interface Global {
      SocketServer: io.Server
    }
  }
}

global.SocketServer = io.default();

注意:在某些情况下,全局变量即使在多个进程中也可以使用。当我们需要存储常量值时,例如在失败时存储一些电子邮件地址时,建议/通常使用全局变量。例如:global.support_email = "somedl@domain.com"。
参考可能重复: 如何在node.js中使用全局变量? 如何在node.js TypeScript中创建可写全局变量(使用TypeScript) 如何在node.js中使用全局变量?

1
谢谢。我解决了。在我的情况下, import * as winston from 'winston'; declare global { namespace NodeJS { interface Global { log: typeof winston.Logger; } } const log: winston.Logger; } - Kunie
太好了,听到这个消息很棒。 - Senthil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接