通过PG Promise初始化Postgresql数据库时遇到问题

通过PG Promise初始化Postgresql数据库时遇到问题,postgresql,typescript,pg-promise,Postgresql,Typescript,Pg Promise,我对Express/Postgresql完全陌生,我正在尝试学习它们来创建一个web应用程序。经过一番摸索,我决定用TypeScript开发我的后端。我成功地将所有其他文件从JavaScript转换为TypeScript,但我仍然不知道如何在TypeScript中初始化pg promise连接 我一直在尝试遵循这个链接中的TypeScript指南 //初始化PostGres数据库连接以在整个过程中使用 整个应用程序 从“pg promise”导入{IMain,IDatabase}; 从“pg承诺

我对Express/Postgresql完全陌生,我正在尝试学习它们来创建一个web应用程序。经过一番摸索,我决定用TypeScript开发我的后端。我成功地将所有其他文件从JavaScript转换为TypeScript,但我仍然不知道如何在TypeScript中初始化pg promise连接

我一直在尝试遵循这个链接中的TypeScript指南

//初始化PostGres数据库连接以在整个过程中使用
整个应用程序
从“pg promise”导入{IMain,IDatabase};
从“pg承诺”导入*作为pg承诺;
常量pgp:IMain=pgPromise({
查询(e:任何){
log('queryresult:',e.QUERY);
},
接收(数据:任意,结果:任意,e:任意){
log(`DATA FROM QUERY${e.QUERY}已收到。`);
}
});
常量连接:任意={
主机:“localhost”,
港口:5432,
数据库:“RUSHUB”,
用户:“RyanArifin”,
密码:null
}
常数db:IDatabase=pgp(连接);
出口{
分贝
};

我当前收到错误“TS2349:无法调用其类型缺少调用签名的表达式。类型“typeof pgPromise”没有兼容的调用签名。”此错误来自我尝试设置初始化选项时。任何帮助都将不胜感激,谢谢

这是标准的TypeScript配置标志-
esModuleInterop
。当设置为true时,导入语法为
import pgPromise from'pg promise'
,当默认值为
false
时,语法为
import*as pgPromise from'pgPromise'


该库为您提供了默认TypeScript配置的示例。

用作参考,因为它在那里工作得很好。谢谢!实际上,我也在研究这个问题,我想知道如何在没有“IExtensions”接口的情况下初始化数据库(或者这是工作所必需的)?我问这个问题的原因是,据我所知,“IExtension”只是扩展了“UsersRepository”和“ProductsRepository”扩展,我在我的小程序中不需要这些扩展(目前为止)。有没有办法在没有IExtension接口的情况下创建初始化选项?谢谢没关系,我解决了问题。显然,在Javascript ES6中,您需要使用“import pgPromise from'pg promise'”而不是“import*as pgPromise from'pg promise';”。
// Initialize the PostGres database conneciton for use throughout 
the entire application
import {IMain, IDatabase} from 'pg-promise';
import * as pgPromise from 'pg-promise';

const pgp: IMain = pgPromise({
    query(e: any) {
        console.log('QUERY RESULT:', e.query);
    },
    receive(data: any, result: any, e: any) {
        console.log(`DATA FROM QUERY ${e.query} WAS RECEIVED.`);
    }
});

const connection: any = {
    host: 'localhost',
    port: 5432,
    database: 'RushHub',
    user: 'RyanArifin',
    password: null
}
const db: IDatabase<any> = pgp(connection);
export {
    db
};