2016-07-28 2 views
2

У меня есть проект, написанный в машинописном тексте v.1.4 «ECMA6», и я хочу использовать «async» только из-за того, что некоторые вычисления должны быть асинхронными.Changed Typcript-Version

Но после того, как я обновил свою версию в 1,8 версии в Visual Studio 2013, у меня возникли большие проблемы с расширенными классами, и я понятия не имею, почему?

Исключение я получаю:

конструктор класса «XYZ» не может быть использовано без «новых»

Классы выглядит как расширения б, б продлить с ...

class XavObject { 
    constructor() { } 
} 

class XavWidget extends XavObject { 
    constructor(control: JQuery, name?: string, id?: number) { 
     super(); 
    } 
} 

class Widget_ConstructionKitContainer extends XavWidget { 
    constructor(control: JQuery, controlName: string) { 
     super(control, controlName, 1); // ---> here throws the exception 
    } 
} 

Зачем возникает это исключение и что я могу сделать для его решения?

EDIT: Я стараюсь дать больше информации ...

У меня есть веб-сервиса, написанный на C# Wich делает .js-файлы из .ts-файлы доступны. Что-то вроде «http://localhost:8080/DLLName/XavObject.js»

Так что HTML выглядит следующим образом:

<script src="XavObject.js"></script> 
<script src="XavWidget.js"></script> 
<script src="Widget_ConstructionKitContainer.js"></script> 


<script> 
     xavManager.jQuery(document).ready(function() { 
      var constructionKitContainer = 
      new Widget_ConstructionKitContainer(
      xavManager.jQuery('#ConstructionKitContainer'), 
      "ConstructionKitContainer", 

      xavManager.jQuery('#regionSelector'), 
      xavManager.jQuery('#regionConfigurator'), 
      xavManager.jQuery('#regionContainer'), 
      xavManager.jQuery('#Preview'), 
      xavManager.jQuery('#ThreeDContainer'), 
      xavManager.jQuery('#MainThreeD'), 
      xavManager.jQuery('#NavThreeD'), 

      [xavManager.jQuery('#ModelTypAuswahl'), 
      xavManager.jQuery('#ModelformAuswahl'), 
      xavManager.jQuery('#WandArtikelAuswahl'), 
      xavManager.jQuery('#EbeneAuswahl'), 
      xavManager.jQuery('#ElementAuswahl'), 
      xavManager.jQuery('#MaterialAuswahl'), 
      xavManager.jQuery('#SetArtikelAuswahl'), 
      xavManager.jQuery('#GriffArtikelAuswahl')], 
      constanten 
     ); 
     }); 
</script> 

После того, как я называю эту страницу, последний сценарий выполняется и бросает исключение.

The Structure of the Project looks like:

Так три класса находятся в трех файлах и два из них в том же libori, другой один в другой.

EDIT Ч.2:

После того как я перезагрузил свой компьютер это сообщение об ошибке исчезает ... Но появляется другая ошибка в некоторых JS-файла ....

Ошибка синтаксиса ТОЛЬКО В JS-FILE Он не может скомпилировать один файл

class SelectionRules extends ValidationRules { 

    protected _getNewTimedOutObject():   ValidationRules_TimeoutItem_Calculate|SelectionRules_TimeoutItem_Calculate { 
     return new SelectionRules_TimeoutItem_Calculate(); 
    } 
} 

class SelectionRules_TimeoutItem_Calculate extends  ValidationRules_TimeoutItem_Calculate { 
    public liElement: HTMLElement; 
} 

class ValidationRules_TimeoutItem_Calculate { 
    public Timeout: number; 
    public Setting: Widget_ConfiguratorBase_Object_Setting; 
    public SearchString: string; 
    public ErrorText: string; 
    public Value: string = ""; 
    public DataElement: Widget_Article_Setting; 
    public ContainerEntryIndex: number; 
} 

Это потому, что эта часть? ValidationRules_TimeoutItem_Calculate | SelectionRules_TimeoutItem_Calculate

Но почему эти линии работают с машинопись 1.4?

+0

Может быть, ошибка где-то еще, но я не понимаю, почему возникает эта ошибка .... Другой вопрос: почему эта ошибка возникла после того, как я изменил версию? С 1.4 все в порядке .... – Cogeck

+0

Это ошибка компиляции? Я думаю, вы должны опубликовать больше кода, код, который вы опубликовали, работает и компилируется на машинописной площадке. Единственное, что приходит мне на ум, это то, что у вас есть проблема с 'export', и ваши классы больше не доступны снаружи, где они определены – iberbeu

+0

Я надеюсь, что редактирование поможет – Cogeck

ответ

0

После тонн часов я получил его ....

После обновления машинописи, рестарта Визуальной-Studio! Если вы работаете с ECMA6 и двойным типизированным как параметром/функция, такой как ValidationRules_TimeoutItem_Calculate | SelectionRules_TimeoutItem_Calculate вам нужно изменить безрастворную варианту обратно ECMA5 же выпуск новых сгенерированных классов! -> назад к ECMA5 он будет работать после компиляции они все работают