2017-03-17 66 views
0

我的控制器中添加插件后,在我的控制器中使用paginate时出现问题,我的代码是在TypeScript 2.1中编写的,我在devdependencies中安装了@ types/mongoose-paginate。插入导入模式后调用'paginate'的错误

严重性:'错误'消息:'属性'分页'在类型'模型'上不存在。'

我的控制器:

export function getAllArtists(req, res) { 
Artist.paginate({}, { page: 3, limit: 10 }, function(err, result) { 
    // ... 
    // ... 
}); 

我的架构:

'use strict' 
import {Document, model, Model, Schema} from 'mongoose'; 
import * as mongoosePaginate from 'mongoose-paginate'; 

interface IArtist extends Document { 
    name: String; 
    description: String; 
    image: String; 
} 

const ArtistSchema: Schema = new Schema({ 
    name: String, 
    description: String, 
    image: String 
}); 

ArtistSchema.plugin(mongoosePaginate); 

export const ArtistModel: Model<IArtist> = model<IArtist>('Artist', ArtistSchema); 

感谢,

回答

0

的解决方案是包括与PaginateModel延伸到我的Schema的接口。

'use strict' 

import { PaginateModel, Document, Schema, model } from 'mongoose'; 
import * as mongoosePaginate from 'mongoose-paginate'; 

interface IArtist extends Document { 
    name: String; 
    description: String; 
    image: String; 
} 

const ArtistSchema: Schema = new Schema({ 
    name: String, 
    description: String, 
    image: String 
}); 

ArtistSchema.plugin(mongoosePaginate); 

interface ArtistModel<T extends Document> extends PaginateModel<T> {} 

export const ArtistModel: ArtistModel<IArtist> = model<IArtist>('Artist', ArtistSchema);