@@ -22,6 +22,10 @@ import { DataSnapshot } from './DataSnapshot';
22
22
23
23
let __referenceConstructor : new ( repo : Repo , path : Path ) => Query ;
24
24
25
+ export interface SnapshotCallback {
26
+ ( a : DataSnapshot , b ?: string ) : any
27
+ }
28
+
25
29
/**
26
30
* A Query represents a filter to be applied to a firebase location. This object purely represents the
27
31
* query expression (and exposes our public API to build the query). The actual query logic is in ViewBase.js.
@@ -143,8 +147,8 @@ export class Query {
143
147
* @param {Object= } context
144
148
* @return {!function(DataSnapshot, string=) }
145
149
*/
146
- on ( eventType : string , callback : ( a : DataSnapshot , b ?: string ) => any ,
147
- cancelCallbackOrContext ?: ( ( a : Error ) => any ) | Object , context ?: Object ) : ( a : DataSnapshot , b ?: string ) => any {
150
+ on ( eventType : string , callback : SnapshotCallback ,
151
+ cancelCallbackOrContext ?: ( ( a : Error ) => any ) | Object , context ?: Object ) : SnapshotCallback {
148
152
validateArgCount ( 'Query.on' , 2 , 4 , arguments . length ) ;
149
153
validateEventType ( 'Query.on' , 1 , eventType , false ) ;
150
154
validateCallback ( 'Query.on' , 2 , callback , false ) ;
@@ -177,7 +181,7 @@ export class Query {
177
181
* @param {?function(Error) } cancelCallback
178
182
* @param {?Object } context
179
183
*/
180
- onChildEvent ( callbacks : { [ k : string ] : ( a : DataSnapshot , b : string | null ) => any } ,
184
+ onChildEvent ( callbacks : { [ k : string ] : SnapshotCallback } ,
181
185
cancelCallback : ( ( a : Error ) => any ) | null , context : Object | null ) {
182
186
const container = new ChildEventRegistration ( callbacks , cancelCallback , context ) ;
183
187
this . repo . addEventCallbackForQuery ( this , container ) ;
@@ -188,7 +192,7 @@ export class Query {
188
192
* @param {(function(!DataSnapshot, ?string=))= } callback
189
193
* @param {Object= } context
190
194
*/
191
- off ( eventType ?: string , callback ?: ( a : DataSnapshot , b ?: string | null ) => any , context ?: Object ) {
195
+ off ( eventType ?: string , callback ?: SnapshotCallback , context ?: Object ) {
192
196
validateArgCount ( 'Query.off' , 0 , 3 , arguments . length ) ;
193
197
validateEventType ( 'Query.off' , 1 , eventType , true ) ;
194
198
validateCallback ( 'Query.off' , 2 , callback , true ) ;
@@ -217,7 +221,7 @@ export class Query {
217
221
* @param context
218
222
* @return {!firebase.Promise }
219
223
*/
220
- once ( eventType : string , userCallback : ( a : DataSnapshot , b ?: string ) => any ,
224
+ once ( eventType : string , userCallback : SnapshotCallback ,
221
225
cancelOrContext ?, context ?: Object ) {
222
226
validateArgCount ( 'Query.once' , 1 , 4 , arguments . length ) ;
223
227
validateEventType ( 'Query.once' , 1 , eventType , false ) ;
@@ -376,7 +380,7 @@ export class Query {
376
380
}
377
381
378
382
// Calling with no params tells us to start at the beginning.
379
- if ( value == null ) {
383
+ if ( value === undefined ) {
380
384
value = null ;
381
385
name = null ;
382
386
}
0 commit comments