簡體   English   中英

TypeScript:如何從javascript構造函數繼承?

[英]TypeScript: How to inherit from javascript constructor function?

如何從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 = {}));

我如何在打字稿中繼承它。 我試過以下代碼。 我收到錯誤“ 錯誤的引用:引用的文件:”my-base.js“無法解析

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

    module MyModule {

        export class MyConcrete extends MyBase {

        }

    }

您需要在typescript中聲明等同於javascript代碼的簽名。 這是為了讓TypeScript知道如果它是用TypeScript編寫的,你的JavaScript意味着什么:

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可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM