gpt4 book ai didi

javascript - TypeScript:如何继承javascript构造函数?

转载 作者:搜寻专家 更新时间:2023-10-30 21:07:34 28 4
gpt4 key购买 nike

如何从 javascript 中的构造函数继承?

例如我有一个用原生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 = {}));

我如何在 typescript 中继承它。我尝试了以下代码。我收到错误消息“引用不正确:引用的文件:无法解析“my-base.js”

 /// <reference path="my-base.js" />

module MyModule {

export class MyConcrete extends MyBase {

}

}

最佳答案

您需要在 typescript 中声明与您的 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 等)来确保 MyBase 在 MyConcrete 之前可用。

关于javascript - TypeScript:如何继承javascript构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16835385/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com