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 类型。
推荐阅读
- c++ - QDebug 在 QDialog 中不起作用
- java - 如果顺序无关紧要,如何从具有 k 个元素的集合列表中创建具有 k+1 个元素的集合列表?
- python - 如何在 Python PyX 中隐藏轴文本
- ssis - SSIS 平面文件目标设置未保存(恢复为原始状态)
- javascript - 如何在 Angular 中有效取消提交表单?
- excel - 使用 VBA 将多个条码放置在一个单元格中,同时保留删除和撤消功能。
- angular - 更改角度组件内的活动引导选项卡
- java - 当用于全局变量初始化时,自动装配的 bean 给出了一个空指针异常
- javascript - 使用只有一个“搜索框”以及分页在多个列上应用搜索
- c# - 如何使用虚拟请求启动网站初始化