Javascript 使用Typescript调用具有多个参数的cytoscape.use()时出现问题
我们正在开发一个用Typescript编写的UI,使用和扩展。根据对扩展的描述,它应该像这样在cytoscape中注册Javascript 使用Typescript调用具有多个参数的cytoscape.use()时出现问题,javascript,typescript,cytoscape.js,Javascript,Typescript,Cytoscape.js,我们正在开发一个用Typescript编写的UI,使用和扩展。根据对扩展的描述,它应该像这样在cytoscape中注册 import cytoscape from 'cytoscape'; import $ from 'jquery'; import contextMenus from 'cytoscape-context-menus'; cytoscape.use(contextMenus, $); 但是,这样注册扩展将导致以下Typescript编译错误 错误在。。。。 TS2554:应
import cytoscape from 'cytoscape';
import $ from 'jquery';
import contextMenus from 'cytoscape-context-menus';
cytoscape.use(contextMenus, $);
但是,这样注册扩展将导致以下Typescript编译错误
错误在。。。。
TS2554:应为1个参数,但得到2个
查看cytoscape的类型定义文件,可以在index.d.ts的底部找到以下代码
type Ext = (cytoscape: (options?: CytoscapeOptions) => Core) => void;
function use(module: Ext): void;
以及Cytoscape index.js中的以下代码
// e.g. cytoscape.use( require('cytoscape-foo'), bar )
cytoscape.use = function( ext ){
let args = Array.prototype.slice.call( arguments, 1 ); // args to pass to ext
args.unshift( cytoscape ); // cytoscape is first arg to ext
ext.apply( null, args );
return this;
};
如果我执行以下任一操作,编译错误就会消失
- 更新类型定义文件以包含rest参数,
函数用法(模块:Ext,…args:any[]):void代码>
- 在cytoscape上面添加
代码>//ts ignore