3

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 {

        }

    }
4

1 に答える 1

4

typescript で JavaScript コードに相当する署名を宣言する必要があります。これは、JavaScript が TypeScript で記述されている場合に TypeScript が何を意味するかを 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 を利用できるようにすることができます。

于 2013-05-30T12:52:30.997 に答える