如何在Typescript中的类中包含一个类?我试图模拟android API,在nativescript中使用,所以我需要在模块中声明一个类ina,如下所示:
export module myModule {
export class MasterClass {
static myVariable: number;
public static myFunction(param: string): boolean;
static class myClass2{
someFunction():void;
}
}
}
但是,这会引发各种错误,例如
错误TS1005:' ='预期
如果我这样做:
myClass = Class {}
然后我收到编译器错误,大声说在环境上下文中不允许初始化器。
我该怎么做呢,tsc
很开心,我可以参考myModule.MasterClass.myClass2.somefunction()
。 ?
答案 0 :(得分:0)
你不能在打字稿中这样做,它不等同于java。
在java中,内部类是其父类实例的一部分,静态内部类基本上只使用它们的父类作为命名空间/闭包,你可以在带有namespace
的打字稿中模仿:
export module myModule {
export namespace MyNamespace {
export var myVariable: number;
export function myFunction(param: string): boolean {}
export class MasterClass {}
export class MyClass2 {
someFunction(): void {}
}
}
}
因此,所有静态成员/方法现在都是命名空间变量/函数,然后您可以使用点表示法进行引用。
答案 1 :(得分:0)
您可以合并类和命名空间:
export namespace MyModule {
export class MasterClass {
public myVariable: number;
public static myFunction(param: string): boolean {
return false;
}
}
export namespace MasterClass {
export class myClass2 {
public static someFunction(): void {
// implementation
}
}
}
}
MyModule.MasterClass.myClass2.someFunction();
PS。您应该避免使用module
关键字。请改用namespace
。