示例
class A {
constructor(public val1: number, public val2: number,public val3: string, public b: B) {
}
}
class B {
constructor(public val4: boolean, public val5: number) {
}
}
存在任何接收类A并返回类的JSON结构的函数,无论它是否只是可视化,都返回:
{val1: number, val2: number, val3: string, b: {val4: boolean, val5: number}}
打字稿中的一个类,它不再是{nameProperty:data type,...}
的散列我想要只有属性的类,没有方法。
答案 0 :(得分:1)
我会更好地解释我在评论中所写的内容。
在typecript中定义一个类时,你需要在其中定义成员,但是当它被编译为js时,成员并没有真正被添加到类中。
考虑以下打字稿:
class A {
str: string;
num: number;
}
汇编为:
var A = (function () {
function A() {
}
return A;
}());
正如您所看到的,js代码中没有str
和num
成员的踪迹。
分配值时:
class A {
constructor(public str: string, public num: number) {}
}
汇编为:
var A = (function () {
function A(str, num) {
this.str = str;
this.num = num;
}
return A;
}());
您可以在这里看到str
和num
,但请注意它们已添加到构造函数中的实例中,它们不会添加到原型中(与方法不同)或A
,所以在你有一个实例之前,没有办法访问它们。
因此,您无法获得类中属性的映射 您可以使用reflect-metadata包保存成员元数据。