我如何将 pouchdb 与打字稿一起使用?
How do I use pouchdb with typescript?
我正在尝试将 pouchdb 与 Typescript 一起使用。我无法 link 到 pouchdb 模块。
import { PouchDB } from "pouchdb"
报告找不到模块 pouchdb,即使它在 node_modules。
我也找不到适合 pouchdb 的类型。
我设法通过使用
来识别模块
declare function require(a)
var PouchDB = require("pouchdb")
我放弃了类型检查,但至少我可以进步
我在 Ionic 中执行此操作,因此我可能缺少正确加载类型文件的步骤。
确保您的类型安装了:
npm install --save-dev @types/pouchdb
在数据服务导入袋的顶部,如下所示:
import * as PouchDB from 'pouchdb';
* 编辑 *
我不了解所有的事实,但这是我目前的理解。
Typescript >2.0 不再需要打字
我相信打字稿现在可以自动处理从 DefinitelyTyped 安装的类型文件。
DefinitelyTyped 是一个像 npm 一样保持最新的官方中央存储库。
即使我对这一切完全错了,DefinitelyTyped 仍然比打字更好,并且拥有更大的社区。
因为我刚遇到这个问题,对于 Angular 2 + Typescript,使用 PouchDB(使用 angular-cli)的正确方法是:
ng new SOMENAME
npm install --save pouchdb
npm install --save-dev @types/pouchdb
- 在你的app.component
import PouchDB from 'pouchdb';
- 在您的应用程序组件中 Class
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
我在尝试导入 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;
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 :)
我正在尝试将 pouchdb 与 Typescript 一起使用。我无法 link 到 pouchdb 模块。
import { PouchDB } from "pouchdb"
报告找不到模块 pouchdb,即使它在 node_modules。
我也找不到适合 pouchdb 的类型。
我设法通过使用
来识别模块declare function require(a)
var PouchDB = require("pouchdb")
我放弃了类型检查,但至少我可以进步
我在 Ionic 中执行此操作,因此我可能缺少正确加载类型文件的步骤。
确保您的类型安装了:
npm install --save-dev @types/pouchdb
在数据服务导入袋的顶部,如下所示:
import * as PouchDB from 'pouchdb';
* 编辑 *
我不了解所有的事实,但这是我目前的理解。 Typescript >2.0 不再需要打字 我相信打字稿现在可以自动处理从 DefinitelyTyped 安装的类型文件。 DefinitelyTyped 是一个像 npm 一样保持最新的官方中央存储库。 即使我对这一切完全错了,DefinitelyTyped 仍然比打字更好,并且拥有更大的社区。
因为我刚遇到这个问题,对于 Angular 2 + Typescript,使用 PouchDB(使用 angular-cli)的正确方法是:
ng new SOMENAME
npm install --save pouchdb
npm install --save-dev @types/pouchdb
- 在你的app.component
import PouchDB from 'pouchdb';
- 在您的应用程序组件中 Class
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
我在尝试导入 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;
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 :)