我有一个用typescript v.1.4“ECMA6”编写的项目,我只想使用'async',因为某些计算需要是异步的。
但是在Visual Studio 2013中将我的打字稿版本升级到1.8后,我遇到了扩展课程的大问题,我不明白为什么?
我得到的例外是:
如果没有'new'
,则无法调用类构造函数“XYZ”
这些类看起来像一个扩展b,b扩展c ...
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
}
}
为什么会发生此异常,我该怎么办才能解决它?
修改 我试着提供更多信息......
我有一个用C#编写的web服务,可以从.ts-Files访问.js文件。像“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中,另一个在另一个中。
编辑第2部分:
重新启动电脑后,此错误信息消失了...... 但是在某些js-File中出现了另一个错误......
语法错误仅限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
但为什么这些行适用于TypeScript 1.4?
答案 0 :(得分:0)
经过几个小时我得到了它......
升级TypeScript后,重新启动Visual-Studio! 如果您使用ECMA6并且您像参数/函数一样双击类型,如ValidationRules_TimeoutItem_Calculate | SelectionRules_TimeoutItem_Calculate,您需要将解决方案选项更改回 ECMA5 新生成的类的问题相同! - &GT;回到 ECMA5 它会起作用 编译完成后,一切正常