有很多文章说,在大多数情况下,组合比继承要好(Google:组合vs继承)。 而且我倾向于同意他们提出的论点。
如何将成员的所有功能公开为类自己的功能?
详细问题: Hovewer我介绍了一个首选继承的实用程序,但是由于基类的实现细节,因此不可能实现。
假设我有
class class1 {
constructor(options) {
this.express = express();
}
my_function() {
// ...
}
}
let a = new class1();
有没有办法使所有呼叫正常工作?
a.my_function();
a.get(...);
a.post(...);
a.<ANY_OTHER_EXPRESS_STUFF_HERE>(...);
我当前的解决方案
a.my_function();
a.express.get(...);
a.express.post(...);
a.express.<ANY_OTHER_EXPRESS_STUFF_HERE>(...);
有什么不好的地方: - 它很丑 -我总是必须要经过'express'成员 -用户应该知道哪些成员在哪里(哪些是本地成员,哪些来自“基础”“类”)
限制:
答案 0 :(得分:0)
在打字稿中,定义您的类还具有表达方法可能会很复杂。如果要举个例子,可以看看我制作的intl-ts程序包,尤其是Intl class,它使用自己的方法和用户定义的字典进行了定义。