Параметры остальных в файле объявления Typescript

Я использую VSCode для анализа моего JS для типов, использующих файл декларации + JSDoc. Это не должно иметь значения, но может быть?

В моей декларации у меня есть

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 ответа

Не уверен насчет использования function но обе эти формы должны работать:

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

или же

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

Похоже, я должен просто делать

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

Который не такой же ответ, как первый результат Google.

Другие вопросы по тегам