【发布时间】:2016-08-09 21:37:35
【问题描述】:
我有一个带有 getter 的类,它被设置为返回一个提供给构造函数的值
class Example {
private _field;
constructor(field) {
this._field = field;
}
get field() {
return this._field;
}
}
问题是当我执行JSON.stringify(new Example('whatever')) 时,_field 也被序列化了。我目前的解决方法是在构造函数中定义属性,并使用闭包
class Example {
constructor(field) {
Object.defineProperty(this, 'field', {
get: () => field;
}
}
}
这样我不需要该字段,但现在 TS 编译器抱怨没有 field 属性。有没有更好的办法?
或者也许我应该找到一种方法将_field 排除在序列化之外?
【问题讨论】:
-
你能用一个函数吗? "getField() { return this._field; }"
标签: json properties typescript ecmascript-6