我是Express/Postgresql的新手,我正在尝试学习它们来创建Web应用程序。经过一番思考,我决定用TypeScript开发我的后端。我成功地将所有其他文件从 JavaScript 转换为 TypeScript,但我仍然不知道如何在 TypeScript 中初始化 pg-promise 连接!
我一直在尝试遵循此链接中的TypeScript指南。 https://github.com/vitaly-t/pg-promise/tree/master/typescript
// 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
};
我目前收到错误"TS2349:无法调用类型缺少呼叫签名的表达式。类型'类型pgPromise'没有兼容的呼叫签名。此错误来自我尝试设置初始化选项时。任何帮助将不胜感激,谢谢!
标准的TypeScript配置标志 - esModuleInterop
。设置为 true 时,导入语法为 import pgPromise from 'pg-promise';
,当false
(默认值)时,语法为 import * as pgPromise from 'pg-promise';
。
该库为您提供了默认 TypeScript 配置的示例。