如何在Deno中定义全局变量?



我是Deno和TypeScript的新手,但有很多使用NodeJs和Javascript的经验,我偶然发现了各种各样的问题,我可以通过简单地将global添加到组合中来轻松地在NodeJs中解决,但是,由于某种原因,这表明在Deno中相当困难。

我想声明应该在任何地方全局可用的First变量,而无需导入它。(有点像Deno变量可用(

以下是我尝试运行的代码示例:

/// index.ts
import { FirstClass } from './FirstClass.ts';
global.First = new FirstClass();
await First.commit();
/// FirstClass.ts
import { SecondClass } from './SecondClass.ts';
export class FirstClass {
constructor() {}
async commit() {
const second = new SecondClass();
await second.comment();
}
}
/// SecondClass.ts
export class SecondClass {
constructor() {}
comment() {
console.log(First); // Should log the FirstClass
}
}

我会像这样运行这段代码:deno run index.ts

Deno 中的全局对象是:window/globalThis

window.First = new FirstClass();

有关 TypeScript 编译器错误,请参阅:如何在 TypeScript 中的"窗口"上显式设置新属性?

declare global {
var First: FirstClass
interface Window { First: any; }
}
window.First = new FirstClass();
await First.commit();

相关内容

  • 没有找到相关文章

最新更新