TypeScript:从另一个类中运行一个类的方法

时间:2017-01-11 16:03:42

标签: typescript

我可能没有正确地做到这一点,但这是我的设置:

我在2个文件中有2个类:

class-a.ts / classA
class-b.ts / classB

然后我有一个名称空间文件(namespace.ts):

import { classA } from "./class-a";
import { classB } from "./class-b";

namespace App {
    let a = new classA();
    let b = new classB();
}

我的问题是,如何在classB中调用classA中可用的方法?现在,如果我尝试在b中调用a.exampleMethod();,则无法找到实例名称。它应该不可用吗?

2 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题:

  • 在classB中实例化classA(进入var,一个字段,具体取决于你需要的范围)
  • 使用extends关键字
  • 在make classB中使用mixin扩展classA

答案 1 :(得分:-1)

除了其他答案,您可以在构造函数中将ClassB传递给ClassA。这样做的好处是ClassAClassB都可以在不相互依赖的情况下进行测试(您可以将实现MockClassB的{​​{1}}传递给IClassB进行测试例如ClassA

这可以根据您的需要进行调整。

ClassA

然后在应用程序的根目录:

interface IClassB
{
    SomeMethod(): void;
}

class ClassB implements IClassB
{
    public SomeMethod(): void
    {
        // do something to update the UI
    }
}

class ClassA
{
    private classB: IClassB;

    constructor( classB: IClassB )
    {
        this.classB = classB;
    }

    public SomeFunctionality(): void
    {
        this.classB.SomeMethod();
    }
}