我有一个类A
我要导出一个实例。 A
有一个返回A.B
实例的方法。我能以某种方式导出实例和静态内部类吗?
class A {
public static B = class {}
getB(): A.B { // <- compile error
return new A.B(); // this works fine
}
}
export default new A();
export { A.B }
我来自Java背景,你可以看到我在这里努力进行转换。我猜我应该用模块做些什么呢?
以下是我希望如何使用它:
import a from "./A";
import { A.B } from "./A";
let b: A.B = a.getB();
答案 0 :(得分:1)
如果您不需要多个A
的实例,那么也许它不应该是一个班级......
这种方法怎么样:
class B { }
const singleton = {
getB(): B {
return new B();
}
};
export default singleton;
答案 1 :(得分:0)
嵌套类是一个java反射,但我真正想表达的是A和B之间的密切关系以及两者的代码管理。
修改@NitzanTomer's answer,这对我有用:
class A {
getB(): B {
return new B();
}
}
export class B {
}
export default new A();
然后用法很简单:
import a from './my-library';
import {B} from './my-library';
let b: B = a.getB();