nodejs 后端如何为typescript定义global下定义的全局属性?

coco
  • 240

image.png
typings\global.d.ts:

declare global {
    namespace NodeJS {
        interface Global {
            isServerRunning: boolean;
        }
    }
}

依然不起作用,求大神帮忙看看,谢谢,(・ω・)ノ

========================问题更新================

目前定义普通的变量如下没问题:
typings\global.d.ts:
declare var isServerRunning: boolean;
但是如果定义一个全局的class属性还是不行,比如:

exception.ts

export default class ExceptionConstructor extends Error {
    ...
}

typings\global.d.ts:

import ExceptionConstructor from 'expection.ts';

declare var Exception: ExceptionConstructor;

然后在代码里:

import ExceptionConstructor from 'expection.ts';
global.Exception = ExceptionConstructor;

就不行:
image.png
同时上面定义的isServerRunning也不起作用了
这种能全局定义吗

回复
阅读 264
1 个回答

直接使用 var 定义变量即可。如:

// eslint-disable-next-line no-var
var hello = () => { console.log("hello world"); };
// eslint-disable-next-line no-var
var hi: () => number;

globalThis.hello();
globalThis.hi = () => 143;

image.png

直接在 .d.ts 中使用 var 声明也是可以的

image.png

参考:TypeScript: Documentation - TypeScript 3.4 (typescriptlang.org)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏