首页 > 解决方案 > Typescript 声明文件中的剩余参数

问题描述

我正在使用 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问题?我只是做错了吗?

标签: typescriptvisual-studio-code.d.ts

解决方案


看起来我应该这样做

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

这与第一个谷歌结果的答案不同。


推荐阅读