Javascript 无法在angular中创建抽象类的实例,但在JS中工作正常
嗨,团队我有一个很小的问题,我有以下代码:Javascript 无法在angular中创建抽象类的实例,但在JS中工作正常,javascript,angular,http,yfiles,Javascript,Angular,Http,Yfiles,嗨,团队我有一个很小的问题,我有以下代码: constructor(private mapper: any, private applyCallback: (arg0: INode) => void) { super() /** @type {GanttMapper} */ this.mapper = new GanttMapper(datamodel); /** @type {function(INode):void} */ this.applyCallback = app
constructor(private mapper: any, private applyCallback: (arg0: INode) => void) {
super()
/** @type {GanttMapper} */
this.mapper = new GanttMapper(datamodel);
/** @type {function(INode):void} */
this.applyCallback = applyCallback;
// create the dummy node
this.dummyNode = new SimpleNode();
// switch off the default template
//type RouterClass = typeof ;
//interface RouterDerived extends RouterClass { }
console.log("routerClass");
this.template = new IVisualTemplate({
createVisual() {
return null;
},
updateVisual() {
return null;
}
});}
但在这一部分:
this.template = new IVisualTemplate({
createVisual() {
return null;
},
updateVisual() {
return null;
}
});
im有一个错误,错误是:无法创建abstrac类的实例
在JS中,这段代码运行良好,但我试图在angular中迁移它,但不起作用
我读了同样问题的另一部分,但我不能解决它。。。。。。
我尝试了所有的重播技巧,但都不起作用。
谢谢大家
{
createVisual() {
return null;
},
updateVisual() {
return null;
}
}
这不是有效的JavaScript,请重试
{
createVisual: () => {
return null;
},
updateVisual: () => {
return null;
}
}
这不是有效的JavaScript,请重试
{
createVisual: () => {
return null;
},
updateVisual: () => {
return null;
}
}
以下是IVisualTemplate的代码
下面是IVisualTemplate的代码,这是因为Angular(或者说TypeScript)比JavaScript更严格。您可以在JavaScript中执行一些无法在TypeScript定义文件中正确表达的操作,而不会削弱类型检查。
这就是其中之一。它将在运行时工作,但TypeScript编译器不理解此功能,并将警告您不要使用无法识别的构造
这是类库独有的一个特性,称为
委员会还指出:
TypeScript中的快速接口实现TypeScript.d.ts文件不包含允许快速接口实现的类型。它们仍然在运行时工作,但是TypeScript编译器仍然会产生错误。要解决此问题,您可以告诉编译器忽略有问题的行,或者使用接口的匿名实现: 这不需要
ts ignore
并适用于所有接口:如果接口中只有一个方法,则只需将其实现传递给接口对象上的。create
方法。如果有更多的成员,则需要通过带有成员名称的选项对象传入这些成员。typescript定义文件现在为这个用例提供了完整的完成。这是因为Angular(或者说typescript)比JavaScript更严格。您可以在JavaScript中执行一些无法在TypeScript定义文件中正确表达的操作,而不会削弱类型检查。
这就是其中之一。它将在运行时工作,但TypeScript编译器不理解此功能,并将警告您不要使用无法识别的构造
这是类库独有的一个特性,称为
委员会还指出:
TypeScript中的快速接口实现TypeScript.d.ts文件不包含允许快速接口实现的类型。它们仍然在运行时工作,但是TypeScript编译器仍然会产生错误。要解决此问题,您可以告诉编译器忽略有问题的行,或者使用接口的匿名实现:
这不需要
ts ignore
并适用于所有接口:如果接口中只有一个方法,则只需将其实现传递给接口对象上的。create
方法。如果有更多的成员,则需要通过带有成员名称的选项对象传入这些成员。typescript定义文件现在为这个用例提供了完整的完成。nooo不起作用,我有同样的错误,无法创建抽象类的实例,但我需要将代码迁移到Angulari。如果IVisualTemplate是一个接口,那么您不能对它调用new,只需将我答案中的对象分配给模板。我如何才能做到这一点?当然这是有效的(现代)EcmaScript 2015。将其粘贴到浏览器的控制台中,然后自己查看。它被称为对象创建的速记:nooo不起作用,我也有同样的错误,无法创建抽象类的实例,但我需要将代码迁移到angularIf IVisualTemplate是一个接口,那么你不能在它上调用new,只需在我的答案中将对象分配到template。我怎么做?当然这是有效的(现代的)EcmaScript 2015。将其粘贴到浏览器的控制台中,然后自己查看。它被称为对象创建的速记:我在一个有Java源代码的网站上发现了这个类IVisualTemplate
,但是为什么要在JavaScript中使用Java代码呢?超级调用必须提供基类的所有参数。构造函数不是继承的。请看:Nikolai,请提供IVisualTemplate
code我不能在这里发布我在一个有Java源代码的网站上找到了这个类IVisualTemplate
,但是为什么你要在JavaScript中使用Java代码呢?超级调用必须提供基类的所有参数。构造函数不是继承的。请看:请Nikolai,提供IVisualTemplate
code我不能在这里发布,为什么你添加了一个不可读的图片作为答案?我看不懂。你为什么要添加一个不可读的图片作为答案?我看不懂。
const customHitTestable = IHitTestable.create((context, location) => location.x > 25)