【发布时间】:2016-11-24 07:55:37
【问题描述】:
假设这样一个简单的类:
class Simple {
private _transactions: [];
makeTransaction() { ... }
revertTransaction() { ... }
// some other methods as well...
}
let obj = new Simple();
obj.makeTransaction(...);
obj.makeTransaction(...);
obj.revertTransaction(...);
现在,我想公开更多与报告相关的方法,我想将它们分组如下:
obj.reports.allTransactions();
obj.reports.reveretedTransactions();
obj.reports.clearedTransactions();
这些方法将使用 Simple 类本身的私有变量来返回一些报告。
我使用以下方法来实现这一点:
class Simple {
private _test = () => { return this._transaction }
reports = {
getAll: this._test
}
}
这可行,但它有几个缺点:
- 它迫使我将所有必需的函数声明为类本身的一部分,然后再次在
reports对象中引用它们。 - Typescript 告诉我
obj.reports.getAll是一个属性,尽管我也可以将它作为函数调用。即便如此,我还是没有得到正确的函数签名提示。 - 它迫使我不必要地使用箭头函数(闭包)。
有没有更好的方法来做同样的事情?
【问题讨论】:
标签: typescript