web-dev-qa-db-ja.com

1つのクラスタイプスクリプトで拡張および実装する

タイプスクリプトでこれを行うことはできますか?

export interface IMyInterface {
    doSomething():void;
}

export class MyBaseClass {
    myBaseClassHasProperty:string;

    constructor(){
      this.myBaseClassHasProperty = 'some value';
    }
    myBaseClassHasMethods():void{
      console.log(this.myBaseClassHasProperty);
    }
}

export class MyClass extends MyBaseClass implements IMyInterface {
    constructor(){
      super();
    }

    doSomething():void{
      this.myBaseClassHasMethods();
    }
}

実行時に私はこれを取得します

キャッチされないReferenceError:MyBaseClassが定義されていません

24
Everton Santos

実行時に私はこれを取得しますUncaught ReferenceError: MyBaseClass is not defined

はい、できます。投稿したコードは正常に機能します。

しかし、私はあなたの実際のコードが複数のファイルに分割されており、MyBaseClass実行されていないMyClassのコードの前にあると疑っています。

JavaScriptの順序を修正するか、外部モジュールを使用して、モジュールローダーが順序を決定します。

17
basarat