我不确定我缺少什么,但我有一个看起来像这样的功能:
export default function (config: DatabaseConnections<DatabaseConnection>) {
return DB['connect'](config, throwError)
}
当我尝试使用该函数时(在我的js测试用例中),我想像这样使用它:
const db = require('../lib/DB')
db({
master: {
host: 'abc123',
user: 'abc123',
password: 'abc123',
database: 'abc123'
}
})
然而,当我这样做时,我收到错误:
无法调用类型缺少调用签名的表达式。
当我这样称呼它db.default({...})
时,它有效。我怎样才能导出该函数,以便我可以像db({...})
一样调用它?
答案 0 :(得分:1)
有几种方法可以解决这个问题
简单修复
您可以尝试从需要中获取默认值:
export default function db (...)
命名功能修复
您也可以尝试命名函数,而不是依赖默认值。
在您的数据库文件中,尝试:
const db = require('../lib/DB').db;
然后在您的测试文件中:
function db(...){ }
module.exports=db;
您也可以仅命名和导出特定功能,而不是使用默认功能。
一个la:
const db = require('../lib/DB');
然后在你的测试文件中:
export default function (config: DatabaseConnections<DatabaseConnection>):DB {
return DB['connect'](config, throwError);
}
奖励返回类型修复
由于db函数返回一个值,您需要在函数上定义一个返回类型。
{{1}}