Skip to content

Commit 552985e

Browse files
committed
fix(types): parametrize QueryList.
1 parent 20e874d commit 552985e

File tree

8 files changed

+17
-19
lines changed

8 files changed

+17
-19
lines changed

modules/angular2/src/core/compiler/base_query_list.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
library angular2.src.core.compiler.base_query_list;
22

3-
import 'package:angular2/src/core/annotations_impl/annotations.dart';
43
import 'dart:collection';
54

65
/**
@@ -10,8 +9,8 @@ import 'dart:collection';
109
* In the future this class will implement an Observable interface.
1110
* For now it uses a plain list of observable callbacks.
1211
*/
13-
class BaseQueryList extends Object with IterableMixin<Directive> {
14-
List<Directive> _results;
12+
class BaseQueryList<T> extends Object with IterableMixin<T> {
13+
List<T> _results;
1514
List _callbacks;
1615
bool _dirty;
1716

@@ -20,7 +19,7 @@ class BaseQueryList extends Object with IterableMixin<Directive> {
2019
_callbacks = [],
2120
_dirty = false;
2221

23-
Iterator<Directive> get iterator => _results.iterator;
22+
Iterator<T> get iterator => _results.iterator;
2423

2524
reset(newList) {
2625
_results = newList;

modules/angular2/src/core/compiler/base_query_list.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import {List, MapWrapper, ListWrapper} from 'angular2/src/facade/collection';
2-
import {Directive} from 'angular2/src/core/annotations_impl/annotations';
32

43
/**
54
* Injectable Objects that contains a live list of child directives in the light Dom of a directive.
@@ -10,8 +9,8 @@ import {Directive} from 'angular2/src/core/annotations_impl/annotations';
109
*
1110
* @exportedAs angular2/view
1211
*/
13-
export class BaseQueryList {
14-
_results: List<Directive>;
12+
export class BaseQueryList<T> {
13+
_results: List<T>;
1514
_callbacks;
1615
_dirty;
1716

modules/angular2/src/core/compiler/element_injector.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -947,7 +947,7 @@ export class ElementInjector extends TreeNode<ElementInjector> {
947947
}
948948

949949
private _createQueryRef(directive): void {
950-
var queryList = new QueryList();
950+
var queryList = new QueryList<any>();
951951
if (isBlank(this._query0)) {
952952
this._query0 = new QueryRef(directive, queryList, this);
953953
} else if (isBlank(this._query1)) {
@@ -1515,10 +1515,10 @@ class QueryError extends BaseException {
15151515

15161516
class QueryRef {
15171517
directive;
1518-
list: QueryList;
1518+
list: QueryList<any>;
15191519
originator: ElementInjector;
15201520

1521-
constructor(directive, list: QueryList, originator: ElementInjector) {
1521+
constructor(directive, list: QueryList<any>, originator: ElementInjector) {
15221522
this.directive = directive;
15231523
this.list = list;
15241524
this.originator = originator;

modules/angular2/src/core/compiler/query_list.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ import {BaseQueryList} from './base_query_list';
7575
*
7676
* @exportedAs angular2/view
7777
*/
78-
export class QueryList extends BaseQueryList {
78+
export class QueryList<T> extends BaseQueryList<T> {
7979
/**
8080
*/
8181
onChange(callback) { return super.onChange(callback); }

modules/angular2/test/core/compiler/element_injector_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,8 @@ class NeedsAttributeNoType {
157157

158158
@Injectable()
159159
class NeedsQuery {
160-
query: QueryList;
161-
constructor(@Query(CountingDirective) query: QueryList) { this.query = query; }
160+
query: QueryList<CountingDirective>;
161+
constructor(@Query(CountingDirective) query: QueryList<CountingDirective>) { this.query = query; }
162162
}
163163

164164
@Injectable()

modules/angular2/test/core/compiler/integration_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1540,10 +1540,10 @@ class ToolbarViewContainer {
15401540
})
15411541
@Injectable()
15421542
class ToolbarComponent {
1543-
query: QueryList;
1543+
query: QueryList<ToolbarPart>;
15441544
ctxProp: string;
15451545

1546-
constructor(@Query(ToolbarPart) query: QueryList) {
1546+
constructor(@Query(ToolbarPart) query: QueryList<ToolbarPart>) {
15471547
this.ctxProp = 'hello world';
15481548
this.query = query;
15491549
}

modules/angular2/test/core/compiler/query_integration_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ class TextDirective {
9898
@View({directives: [NgFor], template: '<div *ng-for="var dir of query">{{dir.text}}|</div>'})
9999
@Injectable()
100100
class NeedsQuery {
101-
query: QueryList;
102-
constructor(@Query(TextDirective) query: QueryList) { this.query = query; }
101+
query: QueryList<TextDirective>;
102+
constructor(@Query(TextDirective) query: QueryList<TextDirective>) { this.query = query; }
103103
}
104104

105105
var _constructiontext = 0;

modules/angular2/test/core/forward_ref_integration_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ class App {
4646
template: `{{frame.name}}(<span *ng-for="var lock of locks">{{lock.name}}</span>)`
4747
})
4848
class Door {
49-
locks: QueryList;
49+
locks: QueryList<Lock>;
5050
frame: Frame;
5151

52-
constructor(@Query(forwardRef(() => Lock)) locks: QueryList,
52+
constructor(@Query(forwardRef(() => Lock)) locks: QueryList<Lock>,
5353
@Inject(forwardRef(() => Frame)) frame: Frame) {
5454
this.frame = frame;
5555
this.locks = locks;

0 commit comments

Comments
 (0)