如何在javascript中继承构造函数?
e.g。我有一个用本地js编写的基类
var MyModule;
(function (MyModule) {
var MyBase = (function () {
function MyBase(container, $MyElement) {
this._container = container;
this._$MyElement = $MyElement;
}
MyBase.prototype.toString = function () {
return this._previewType;
};
MyBase.prototype.method1 = function(){
};
MyBase.prototype.method2 = function () {
return this._isPreviewAffected;
};
return MyBase;
})();
MyModule.MyBase = MyBase;
})(MyModule || (MyModule = {}));
如何在打字稿中继承它。我试过以下代码。我收到错误“错误的引用:引用的文件:”my-base.js“无法解析”
/// <reference path="my-base.js" />
module MyModule {
export class MyConcrete extends MyBase {
}
}
答案 0 :(得分:4)
您需要 声明 与打字稿中的javascript代码等效的签名。这是为了让TypeScript知道你的JavaScript在TypeScript中编写的含义:
declare module MyModule{
export class MyBase{
constructor(container, $MyElement);
toString();
method1():void;
method2():bool;
}
}
module MyModule {
export class MyConcrete extends MyBase {
}
}
此外/// <reference path="file" />
仅适用于Typescript文件。对于Javascript文件,您可以使用一些脚本管理(例如<script>
标签,requireJS等)来确保在MyConcrete之前MyBase可用。