TypeScript 如何访问其他 class 中定义的对象

TypeScript How to access object defined in other class

我有一个使用 Aurelia 框架的项目。我想制作 global\static 应该跨几个文件访问的对象。但是当我尝试从另一个文件访问它时,它说我的对象是未定义的。这是它的样子:

FirstFile.ts

export function showA() {
    console.log("Changed a to " + a);
}
export var a = 3;

export class FirstFile {
    public ModifyA() {
        a = 7;
        showA();
    }

它说 a = 7。然后我像这样在其他文件中使用它。

SecondFile.ts

import FirstFile = require("src/FirstFile");
export class SecondFile {
    showA_again() {
        FirstFile.showA();
}

我在名为 SecondFile.html

的视图文件中执行 showA_again()
<button click.trigger="showA_again()" class="au-target">Button</button>

当我点击按钮时,我在控制台中看到变量 "a" 仍然是 3。 有没有办法在文件之间存储变量?

我建议您将 FirstFile 注入 SecondFile。现在您的代码有不良架构的味道。

回答您的问题:您可能正在寻找静态 (playground sample)

export class FirstFile {

    static showA = function() {
        console.log("Changed a to " + FirstFile.a);
    }

    static a = 3;

    public ModifyA() {
        FirstFile.a = 7;
        FirstFile.showA();
    }
}

export class SecondFile {
    showA_again() {
        FirstFile.showA();
    }
}