Ошибка вызова 'paginate' после импорта схемы внутри плагина

У меня проблема с использованием paginate в моем контроллере после добавления плагина в мою схему, мой код написан на TypeScript 2.1, я установил @types/mongoose-paginate в devdependencies.

Серьезность [ts]: сообщение об ошибке: "Свойство 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);

Спасибо,

1 ответ

Решение включает в себя интерфейс с расширением PaginateModel для моей схемы.

'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);
Другие вопросы по тегам