Typescript声明文件中的其余参数

时间:2018-06-21 03:55:31

标签: typescript visual-studio-code .d.ts

我正在使用VSCode使用声明文件+ JSDoc将我的JS解析为类型。没关系,但是也许吗?

我的声明中有

declare interface World {
  getEntities: function():Entity[],
}

但是我想用可变数量的参数调用getEntities。

world.getEntities( 'zone', 'area' )

这会给我预期的错误:Expected 0 arguments, but got 2.

阅读其他人如何实现它,我应该这样做:

declare interface World {
  getEntities: function(...a:any[]):Entity[],
}

但是,我在',' expected.所在的.d.ts中会收到错误:

实际上如何声明带有可变参数的函数?这是VSCode问题吗?还是TS问题?我只是做错了吗?

2 个答案:

答案 0 :(得分:0)

看来我应该做

declare interface World {
  getEntities: function(...args):Entity[]
}

与第一个google result答案不同。

答案 1 :(得分:0)

不确定是否要使用function,但是这两种形式都可以使用:

declare interface World {
    getEntities(...a: any[]): Entity[];
}

declare interface World {
    getEntities: (...a: any[]) => Entity[];
}