2016-04-27 5 views
0

Я конвертирую код JavaScript в TypeScript и придерживаюсь наилучшего способа преобразования определений моего класса.Поддерживает ли объявление класса TypeScript класс классов с именами?

Они расширены от марионетки, а имена классов именуются. Например, это JavaScript с использованием «А» имен:

xyz.Marionette.AppRouter = Marionette.AppRouter.extend({ 
    instance_name: "AppRouter", 

    functionName: function(options) { 
    } 
}); 

Я попытался создать эту команду эквивалент класса в машинописном:

class xyz.Marionette.AppRouter extends Marionette.AppRouter { 

, но этот синтаксис не кажется поддерживается.

Возможно ли объявить класс в TypeScript с пространством имен?

Ответы ниже (до сих пор) полезны, но я до сих пор не знаю, как выразить это определение, или даже если это возможно.

ответ

0

класс nameSpace.Marionette.AppRouter расширяет Marionette.AppRouter {

Объявить пространство имен и затем класс:

namespace nameSpace.Marionette { 
    export class AppRouter { 

    } 
} 
+0

Спасибо, что отлично работает! Я все еще не совсем уверен, как определить класс, но с точки зрения расширения. Он входит в класс экспорта? Или под блоком пространства имен? Оба генерируют ошибки TypeScript. заранее спасибо. – Marc

0

Я попытался насмешливый это вверх, но была проблема ссылающийся базовый AppRouter, потому что пространства имен одинаковы. Он работает, если я добавлю классификатор «базы» в первое пространство имен.

namespace base.Marionette { 

    export class AppRouter { 

     Foo() { 
      return "Hello"; 
     } 
    } 
} 

namespace nameSpace.Marionette { 

    export class AppRouter2 extends base.Marionette.AppRouter { 

     Bar() { 
      var hello = this.Foo(); 
     } 
    } 
} 
+0

Большое спасибо за вашу помощь. Я все еще пытаюсь понять, почему я не могу просто написать это в TypeScript: класс nameSpace.Marionette.AppRouter расширяет Marionette.AppRouter { имя_экземпляра: строка; }); Я что-то упустил? – Marc

 Смежные вопросы

  • Нет связанных вопросов^_^