我可能没有正确地做到这一点,但这是我的设置:
我在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();
,则无法找到实例名称。它应该不可用吗?
答案 0 :(得分:0)
有几种方法可以解决这个问题:
extends
关键字答案 1 :(得分:-1)
除了其他答案,您可以在构造函数中将ClassB
传递给ClassA
。这样做的好处是ClassA
和ClassB
都可以在不相互依赖的情况下进行测试(您可以将实现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();
}
}