【发布时间】:2018-07-09 10:09:27
【问题描述】:
我正在开发其他一些使用 vanilla JS 构建的项目。当我现在继续工作时,我想使用 TypeScript,但立即遇到了一个问题:我不能使用“正常”的原型继承,因为以前的所有者 Object.freezed 是基础对象。然而,他自己通过使用$.extend(SubObject.prototype, BaseObject.prototype)(其中$ 是jQuery)继承了这些对象。
例子:
function BaseObject() {}
BaseObject.prototype.foo = function () { console.log("foo"); };
Object.freeze(BaseObject);
function SubObject() {}
// Now he either uses this pattern:
SubObject.prototype = $.extend({}, BaseObject);
// Or this:
$.extend(SubObject.prototype, BaseObject.prototype);
由于像class extends BaseObject {} 这样的TypeScript 代码库继承不起作用,我考虑保持他的模式。但这需要我用构造函数和原型定义对象,但我失败了。
有人知道解决办法吗?
【问题讨论】:
标签: javascript jquery typescript interface prototype