расширяется и реализуется в одном классе в TypeScript

Могу ли я сделать это в TypeScript?

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();
  }
}

Во время выполнения выдает:

Uncaught ReferenceError: MyBaseClass не определен


person Everton Santos    schedule 30.03.2015    source источник


Ответы (1)


во время выполнения я получаю это Uncaught ReferenceError: MyBaseClass is not defined

Да, вы можете это сделать. Код, который вы разместили, будет работать нормально.

Однако я подозреваю, что в вашем фактическом коде он разбит на несколько файлов, и MyBaseClass не выполняется перед кодом для MyClass.

Исправьте порядок JavaScript или используйте внешние модули, чтобы порядок определялся загрузчиком модулей.

person basarat    schedule 30.03.2015
comment
да, я использовал tsconfig.json для компиляции только в один файл app.js, а tsc создавал файл MyBaseClass.js. Но все еще не работает, tsc не создает код __extends в файле js, я попробую больше позже. - tsc --версия 1.4.1.0 в Mac OS X 10.8 - person Everton Santos; 30.03.2015