diff --git a/types/sequelize/index.d.ts b/types/sequelize/index.d.ts index 7d72a0b096..7f0a5d6da4 100644 --- a/types/sequelize/index.d.ts +++ b/types/sequelize/index.d.ts @@ -3793,7 +3793,7 @@ declare namespace sequelize { * @return Model A reference to the model, with the scope(s) applied. Calling scope again on the returned * model will clear the previous scope. */ - scope(options?: string | ScopeOptions | AnyWhereOptions | Array): Model; + scope(options?: string | ScopeOptions | AnyWhereOptions | Array): this; /** * Search for multiple instances. diff --git a/types/sequelize/sequelize-tests.ts b/types/sequelize/sequelize-tests.ts index 5d1f6eed34..9436ea0306 100644 --- a/types/sequelize/sequelize-tests.ts +++ b/types/sequelize/sequelize-tests.ts @@ -10,10 +10,14 @@ import Bluebird = require('bluebird'); interface AnyAttributes { [name: string]: boolean | number | string | object; }; interface AnyInstance extends Sequelize.Instance { }; +interface UserModel extends Sequelize.Model { + findUser?(arbitraryThing: any): Promise; +} + var s = new Sequelize( '' ); var sequelize = s; var DataTypes = Sequelize; -var User = s.define( 'user', {} ); +var User: UserModel = s.define( 'user', {} ); var user = User.build(); var Task = s.define( 'task', {} ); var Group = s.define( 'group', {} ); @@ -893,6 +897,7 @@ User.addScope('lowAccessWithParam', function(id: number) { } ); User.scope( 'lowAccess' ).count(); +User.scope( 'lowAccess' ).findUser( 'foo' ); User.scope( { where : { parent_id : 2 } } ); User.scope( [ 'lowAccess', { method: ['lowAccessWithParam', 2] }, { where : { parent_id : 2 } } ] )