导出A类的实例以及嵌套的类A.B.

时间:2017-05-18 20:24:14

标签: typescript

我有一个类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();

2 个答案:

答案 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();