【发布时间】:2019-08-30 17:32:11
【问题描述】:
我使用的库不是用 TypeScript 编写的,因此我必须使用定义文件。
在这个定义文件中有一个没有构造函数的类(因为原始的 JS 代码没有构造函数)。如果我尝试在我的代码中扩展类,我会收到错误:
错误:(36, 2) TS2377: 派生类的构造函数必须包含 '超级'调用。
如果我在构造函数中添加super(),JavaScript 会报错:
未捕获的类型错误:_super.call 不是函数
如何修改定义文件以使此代码正常工作并消除 TS 的第一个错误? (对于 TypeScript 1.6)
下面是一个简单的定义文件示例(基于backbone-global.d.ts:
declare module Backbone {
class Events {
on(eventName: string, callback?: Function, context?: any): any;
off(eventName?: string, callback?: Function, context?: any): any;
}
class ModelBase extends Events {
...
}
class Router extends Events {
...
}
}
在我的代码中,我有类似的东西:
/// <reference path="libs/typescript/backbone/backbone.d.ts" />
class RosApiManager extends Backbone.Events {
constructor() {
super();
}
}
【问题讨论】:
标签: javascript backbone.js typescript