Когда вы используете тип goose или mon goose, должно работать следующее
class Service<T extends Model<ExtractSchema<T> & Document>> {
public async getSchema(): ExtractSchema<T> {
return this.schema;
}
}
this.schema
вернет схему при вызове функции из документа, в противном случае вам нужно будет установить static
слово, чтобы сделать его статической c функцией (вызываемой из модели)
как для типов, вы должны использовать mongoose.Schema<typeof YourClass>
в качестве возвращаемого типа для getSchema
в противном случае возвращаемый тип будет моделью (которой нет во время выполнения)