当客户端通过React应用程序调用时,我使用Firebase Cloud Functions来执行服务器端代码。我有许多不同的函数,每个函数都采用不同的输入参数,并返回一个具有各种属性的data
对象。
我想创建一个名为useFirebaseFunctions.ts
的钩子,使用它可以发出请求,在这样做的过程中,可以看到函数所需的所有输入参数,以及预期的输出结果。
在我的钩子中,我写了下面的函数:
async function generateReport({ organisationId, projectId }: {
organisationId: string;
projectId: string;
}): Promise<{
data: {
id: string;
fileName: string;
numOfRows: number;
createdOn: number;
};
}> {
const request = httpsCallable(functions, 'adminFunctions-generateReport');
return request({ organisationId, projectId });
}
对于adminFunctions-generateReport
函数,参数为:
| 输入|输出量|
| - -|- -|
| 组织ID:串|id:字符串|
| 项目ID:字符串|文件名:字符串|
| | 行数:数字|
| | 创建时间:编号|
问题
但是,TypeScript会在return request({...)};
行上显示错误:
无法将类型“HttpsCallableResult”分配给类型“{ data:{ id:字符串;文件名:字符串;行数:数量;创建日期:编号;};}“。属性”data“的类型不兼容。类型”{}“缺少类型”{ id:字符串;文件名:字符串;行数:编号;创建时间:数字;}“:ID、文件名、行数、创建时间
如何正确键入函数以获得预期的行为而不出错?
1条答案
按热度按时间gj3fmq9x1#
我找到了解决方案。我将函数重新声明为: