Typescript:从方法访问可选的类属性



在typescript中,我创建了一个具有可选属性和方法的类。在该类的一个方法中,我想访问类型属性(以一种类型安全的方式,所以如果它们存在的话)。

我试过了:

class MyClass {
body?: string;
children?: MyClass[];
static subs(): MyClass[] | undefined {
if (this.children) {
return this.children;
}
}
}

并得到以下错误:

Property 'children' does not exist on type 'typeof MyClass'.ts(2339)

我该如何做到这一点?

静态方法不能访问实例属性。

以下工作:

class MyClass {
body?: string;
children?: MyClass[];
subs(): MyClass[] | undefined {
if (this.children) {
return this.children;
}
return undefined
}
}

,但可以简化为:

// ...

subs(): MyClass[] | undefined {
return this.children;
}

反射(即在运行时访问类型信息)不容易实现。你可以列出一个对象的属性,但是你只能得到javascript的类型。

最新更新