gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 03:52:19 26 4
gpt4 key购买 nike

我是 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 运行 index.ts

最佳答案

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

window.First = new FirstClass();

对于 TypeScript 编译器错误,请参阅:How do you explicitly set a new property on `window` in TypeScript?

declare global {
var First: FirstClass
interface Window { First: any; }
}

window.First = new FirstClass();
await First.commit();

关于typescript - 如何在 Deno 中定义全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62286838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com