Javascript Flowjs-具有泛型类型参数的方法在被调用时不接受参数

Javascript Flowjs-具有泛型类型参数的方法在被调用时不接受参数,javascript,reactjs,flowtype,Javascript,Reactjs,Flowtype,我很难理解为什么我的mockPG对象文本没有被接受为泛型registerDataService方法调用的参数 在此失败: registerDataService(mockPG) 我得到的错误是: 无法调用绑定到pgPool的mockPG的registerDataService,因为对象文字与属性查询返回值的类型参数R[3]中的T[2]不兼容 这里的任何指针都会很好 我的代码 type pgPoolType<T> = { query: <T>(sql: string,

我很难理解为什么我的mockPG对象文本没有被接受为泛型registerDataService方法调用的参数

在此失败:

registerDataService(mockPG)
我得到的错误是:

无法调用绑定到pgPool的mockPG的registerDataService,因为对象文字与属性查询返回值的类型参数R[3]中的T[2]不兼容

这里的任何指针都会很好

我的代码

type pgPoolType<T> = {
  query: <T>(sql: string, args: Array<?string>) => Promise<T>
};

const validateNewUserNameAsync = (userName: string, pgPool: pgPoolType<pgPoolQueryResponse<row>>): 
                                 Promise<validateNewUserNameAsyncResponse> => {}

const registerUserAsync = (userDetails: ud, userStatusId: string, authUrl: string,             
                          pgPool: pgPoolType<pgPoolQueryResponse<registernRow>>
                          ): Promise<registerUserAsyncResponse> => { }


module.exports = (pgPool: pgPoolType<any>) => ({
   validateNewUserNameAsync: (userName: string) => validateNewUserNameAsync(userName, pgPool)
   registerUserAsync: (userDetails: ud, userStatusId: string, authUrl: string) => 
                       registerUserAsync(userDetails, userStatusId, authUrl, pgPool)
});
注册数据服务单元测试

  const mockPG = {
       query: (sql: string, args: Array<?string>) => new Promise((resolve) 
        => {
            resolve({
             rows: [
             {
              usernameAvailable: false,
              alternativeUserName: ['ray1', 'ray_22', 'ray_786']
             }
            ]
           });
          }).then((res) => res)
       };
  }

registerDataService(mockPG)  //  **<-- error here with mockPG:**  
const mockPG={

query:(sql:string,args:Array我设法让它工作

我在查询功能中犯了一个错误:

 type pgPoolType<T> = {
   query: <T>(sql: string, args: Array<?string>) => Promise<T>
 };
type pgPoolType={
查询:(sql:string,args:Array)
   type pgPoolType<T> = {
       query: (sql: string, args: Array<?string>) => Promise<T>
   };