如何将pouchdb与typescript一起使用?

时间:2016-06-03 09:58:20

标签: node.js typescript couchdb pouchdb node-modules

我正在尝试使用带有Typescript的pouchdb。我无法链接到pouchdb模块。

import { PouchDB } from "pouchdb"

报告它找不到模块pouchdb,即使它在node_modules中。

我也找不到适合pouchdb的打字。

5 个答案:

答案 0 :(得分:2)

我在Ionic中这样做,所以我可能错过了正确加载类型文件的步骤。

确保您的类型已安装:

npm install --save-dev @types/pouchdb

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

import * as PouchDB from 'pouchdb';

*编辑*

我没有所有的事实,但这是我目前的理解。 在Typescript> 2.0中不再需要输入 我相信typescript现在可以自动使用从DefinitelyTyped安装的类型文件。 DefinitelyTyped是一个官方的中央存储库,它像npm一样保持最新状态。 即使我对这一切都是错误的,DefinitelyTyped仍然比打字更好,并且拥有更大的社区。

答案 1 :(得分:2)

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

  1. ng new SOMENAME
  2. npm install --save pouchdb
  3. npm install --save-dev @types/pouchdb
  4. 在您的app.component import PouchDB from 'pouchdb';
  5. 在您的应用组件类public db: any;和初始this.db = new PouchDB('test'); // , {storage:'persistent'} not working in typescript without updating typings
  6. 请参阅https://github.com/nolanlawson/pouchdb-find/issues/201

    如果在使用EPERM错误的窗口上安装软件包时遇到问题,请使用(f.e.)npm install --save pouchdb --no-optional来禁用警告。安装应该还可以。有关详细信息,请参阅https://github.com/npm/npm/issues/17671

答案 2 :(得分:1)

尝试导入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;

答案 3 :(得分:0)

我设法通过使用

来识别模块
declare function require(a)

var PouchDB = require("pouchdb")

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

答案 4 :(得分:0)

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);
    }
}

auto-completion with typescript

您最好使用Typescript + pouchDB:)