Он не перегружен, это функция, которая также имеет свойство с именем promise
. Вы можете использовать Object.assign
для создания такого объекта:
let fn: SearchResultSetEachFunction = Object.assign(function (callback: (result: Result) => boolean): void {
}, {
promise(callback: (result: Result) => boolean): Promise<boolean> {
return Promise.resolve(false)
}
})
Playground Link
Или в более новых версиях машинописного текста вы можете использовать объявление функции и напрямую назначить promise
член в той же области видимости, что и объявление, чтобы ts распознал его как новый член:
function mockSearchResultSetEachFunction(callback: (result: Result) => boolean): void {
}
mockSearchResultSetEachFunction.promise = function (callback: (result: Result) => boolean): Promise<boolean> {
return Promise.resolve(false)
}
let fn: SearchResultSetEachFunction = mockSearchResultSetEachFunction
Playground Link