我是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();