如何在Angular2和Ionic2中正确使用PockDB?
我正在尝试转换为Angular 2(Ionic2),我的应用程序使用PockDB 在Angular1中,我使用的是如何在Angular2和Ionic2中正确使用PockDB?,angular,ionic2,pouchdb,Angular,Ionic2,Pouchdb,我正在尝试转换为Angular 2(Ionic2),我的应用程序使用PockDB 在Angular1中,我使用的是var\u usersDatabase=pouchDB(couchctants.COUCHDB\u USERS\u DB\u NAME)带有小写字母,没有new。但是TypeScript编译器在抱怨,所以我这样做了: import { Injectable } from '@angular/core'; import { LocalStorageService } from 'ang
var\u usersDatabase=pouchDB(couchctants.COUCHDB\u USERS\u DB\u NAME)代码>带有小写字母,没有new
。但是TypeScript编译器在抱怨,所以我这样做了:
import { Injectable } from '@angular/core';
import { LocalStorageService } from 'angular-2-local-storage';
import { UtilsService } from '../providers/utils-service';
import { MigrationService } from '../providers/migration-service';
import { CouchConstants } from '../couch-constants';
import PouchDB from 'pouchdb';
@Injectable()
export class UsersDatabase {
constructor(
private storageService: LocalStorageService
, private UtilsService: UtilsService
, private MigrationService: MigrationService
) {
'use strict';
var _usersDatabase = new PouchDB(CouchConstants.COUCHDB_USERS_DB_NAME);
//We attach the function if necessary
if (_usersDatabase.updateReplication == null) {
_usersDatabase.updateReplication = function (newDocsIds) {
console.info("Updating replications with: ");
console.info(newDocsIds);
...
但我得到了这个错误:
Typescript Error
Property 'updateReplication' does not exist on type 'Database<{}>'.
src/providers/users-database.ts
//We attach the function if necessary
if (_usersDatabase.updateReplication == null) {
Typescript错误
类型“Database”上不存在属性“updateReplication”。
src/providers/users-database.ts
//如有必要,我们将附加该函数
if(_usersDatabase.updateReplication==null){
要在TypeScript项目中导入PockDB,您需要执行以下操作:
// Correct
import * as PouchDB from 'pouchdb';
而不是:
// Incorrect
import PouchDB from 'pouchdb';
另外,我不认为updateReplication
是受支持的PockDB API,这可能就是您看到TypeScript警告的原因。要在TypeScript项目中导入PockDB,您需要执行以下操作:
// Correct
import * as PouchDB from 'pouchdb';
而不是:
// Incorrect
import PouchDB from 'pouchdb';
另外,我不相信updateReplication
是受支持的PockDB API,这可能就是您看到TypeScript警告的原因。我刚刚使用Angular cli为Angular 2+TypeScript安装了PockDB。这就是我所做的,它对我很有用:
ng新名字
npm安装--保存数据库
npm安装--保存dev@types/backdb
在你的app.component中从'pockDB'导入pockDB;
在您的应用程序组件类中,{code>public db:any;
和to initthis.db=new-pockdb('test');//,{storage:'persistent'}在不更新打字的情况下无法在typescript中工作
看
如果在windows上安装软件包时出现EPERM错误,请使用(f.e.)
npm安装--保存PockDB--无可选的
来禁用警告。安装应该仍然可以。有关更多信息,请参阅我刚刚使用Angular cli安装了Angular 2+类型脚本的PockDB。这就是我所做的,它对我有用:
ng新名字
npm安装--保存数据库
npm安装--保存dev@types/backdb
从'pockDB'导入pockDB;
this.db=new-pockdb('test');//,{storage:'persistent'}在不更新打字的情况下无法在typescript中工作
如果在windows上安装软件包时遇到EPERM错误,请使用(f.e.)
npm install--save pockdb--no optional
来禁用警告。安装应该还可以。有关更多信息,请参见Nlawson本人,谢谢,我更改了导入pockdb的方式。我编辑了这个问题,以显示updateReplication是添加到_usersDatabase的自定义方法,我如何对其进行编码以避免此错误:Typescript错误属性“updateReplication”在类型“Database”上不存在。
和@nlawson,声明PockDB需要新属性吗?因为在angular1中我没有使用它。nlawson本人,谢谢,我更改了导入PockDB的方式。我编辑了该问题以显示updateReplication是添加到_usersDatabase的自定义方法,如何我是否可以对此进行编码以避免此错误:Typescript错误属性“updateReplication”在类型“Database”上不存在。
和@nlawson,声明PockDB是否需要新属性?因为在angular1中我没有使用它。