CouchDB 如何将pouchdb与typescript一起使用?

v64noz0r  于 2022-12-09  发布在  CouchDB
关注(0)|答案(5)|浏览(120)

我正在尝试将pouchdb与Typescript一起使用。我无法链接到pouchdb模块。

import { PouchDB } from "pouchdb"

报告它找不到模块pouchdb,即使它在node_modules中。
我也找不到pouchdb的适当类型。

u1ehiz5o

u1ehiz5o1#

我是在Ionic中执行此操作的,因此可能遗漏了正确加载类型文件的步骤。
确保您的类型安装有:

npm install --save-dev @types/pouchdb

在数据服务导入邮袋的顶部,如下所示:

import * as PouchDB from 'pouchdb';

编辑

我不知道所有的事实,但这是我目前的理解。打字在Typescript〉2.0中不再需要我相信typescript现在可以自动处理从DefinitelyTyped安装的类型文件。DefinitelyTyped是一个官方的中央存储库,像npm一样保持最新。即使我完全错了,DefinitelyTyped仍然比打字更好,并且有一个更大的社区。

ylamdve6

ylamdve62#

因为我刚刚有这个问题,对于Angular 2 + Typescript正确的方式来使用PouchDB(使用angular-cli)是:

  1. ng new SOMENAME
  2. npm install --save pouchdb
  3. npm install --save-dev @types/pouchdb
    1.在您的应用程序中。组件import PouchDB from 'pouchdb';
    1.在应用程序组件类public db: any;中,并初始化this.db = new PouchDB('test'); // , {storage:'persistent'} not working in typescript without updating typings
    参见https://github.com/nolanlawson/pouchdb-find/issues/201
    如果在Windows上安装程序包时遇到问题并出现EPERM错误,请使用(f.e.)npm install --save pouchdb --no-optional禁用警告。安装应该仍然正常。有关详细信息,请参阅https://github.com/npm/npm/issues/17671
y4ekin9u

y4ekin9u3#

我有同样的问题试图导入到Angular 6。
您的导入看起来很好:

import PouchDB from 'pouchdb';
import PouchFind from 'pouchdb-find';
PouchDB.plugin(PouchFind);

您可能缺少的是需要将以下内容添加到polyfills.ts文件中:

(window as any).global = window;
(window as any).process = {};
(window as any).process.nextTick = setTimeout;
xqk2d5yq

xqk2d5yq4#

import PouchDB from 'pouchdb';

export abstract class PouchDBDatabase {
    private _database: PouchDB.Database<Sheet>;

    constructor(protected DATABASE_URL: string) {
        this._database = new PouchDB(this.DATABASE_URL);
    }
}

你可以用 typescript + pouchDB:)

xoshrz7s

xoshrz7s5#

我设法通过使用

declare function require(a)

var PouchDB = require("pouchdb")

我已经放弃了类型检查,但至少我可以取得进展。

相关问题