Skip to content

Commit 2bc2657

Browse files
committed
refactor(cdk/tree): fix strict property initialization errors
Updates the code to be compatible with strict property initialization.
1 parent a1358b3 commit 2bc2657

File tree

9 files changed

+65
-68
lines changed

9 files changed

+65
-68
lines changed

src/cdk/tree/control/base-tree-control.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export abstract class BaseTreeControl<T, K = T> implements TreeControl<T, K> {
2323
abstract expandAll(): void;
2424

2525
/** Saved data node for `expandAll` action. */
26-
dataNodes: T[];
26+
dataNodes!: T[];
2727

2828
/** A selection model with multi-selection to track expansion status. */
2929
expansionModel: SelectionModel<K> = new SelectionModel<K>(true);
@@ -37,16 +37,16 @@ export abstract class BaseTreeControl<T, K = T> implements TreeControl<T, K> {
3737
trackBy?: (dataNode: T) => K;
3838

3939
/** Get depth of a given data node, return the level number. This is for flat tree node. */
40-
getLevel: (dataNode: T) => number;
40+
getLevel!: (dataNode: T) => number;
4141

4242
/**
4343
* Whether the data node is expandable. Returns true if expandable.
4444
* This is for flat tree node.
4545
*/
46-
isExpandable: (dataNode: T) => boolean;
46+
isExpandable!: (dataNode: T) => boolean;
4747

4848
/** Gets a stream that emits whenever the given data node's children change. */
49-
getChildren: (dataNode: T) => Observable<T[]> | T[] | undefined | null;
49+
getChildren!: (dataNode: T) => Observable<T[]> | T[] | undefined | null;
5050

5151
/** Toggles one single data node's expanded/collapsed state. */
5252
toggle(dataNode: T): void {

src/cdk/tree/nested-node.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,18 +45,18 @@ export class CdkNestedTreeNode<T, K = T>
4545
protected _differs = inject(IterableDiffers);
4646

4747
/** Differ used to find the changes in the data provided by the data source. */
48-
private _dataDiffer: IterableDiffer<T>;
48+
private _dataDiffer!: IterableDiffer<T>;
4949

5050
/** The children data dataNodes of current node. They will be placed in `CdkTreeNodeOutlet`. */
51-
protected _children: T[];
51+
protected _children!: T[];
5252

5353
/** The children node placeholder. */
5454
@ContentChildren(CdkTreeNodeOutlet, {
5555
// We need to use `descendants: true`, because Ivy will no longer match
5656
// indirect descendants if it's left as false.
5757
descendants: true,
5858
})
59-
nodeOutlet: QueryList<CdkTreeNodeOutlet>;
59+
nodeOutlet!: QueryList<CdkTreeNodeOutlet>;
6060

6161
constructor(...args: unknown[]);
6262

src/cdk/tree/node.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export class CdkTreeNodeOutletContext<T> {
1414
$implicit: T;
1515

1616
/** Depth of the node. */
17-
level: number;
17+
level!: number;
1818

1919
/** Index location of the node. */
2020
index?: number;
@@ -46,7 +46,7 @@ export class CdkTreeNodeDef<T> {
4646
* For every node, there must be at least one when function that passes or an undefined to
4747
* default.
4848
*/
49-
when: (index: number, nodeData: T) => boolean;
49+
when!: (index: number, nodeData: T) => boolean;
5050

5151
constructor(...args: unknown[]);
5252
constructor() {}

src/cdk/tree/padding.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class CdkTreeNodePadding<T, K = T> implements OnDestroy {
2929
private _dir = inject(Directionality, {optional: true});
3030

3131
/** Current padding value applied to the element. Used to avoid unnecessarily hitting the DOM. */
32-
private _currentPadding: string | null;
32+
private _currentPadding: string | null = null;
3333

3434
/** Subject that emits when the component has been destroyed. */
3535
private readonly _destroyed = new Subject<void>();
@@ -45,7 +45,7 @@ export class CdkTreeNodePadding<T, K = T> implements OnDestroy {
4545
set level(value: number) {
4646
this._setLevelInput(value);
4747
}
48-
_level: number;
48+
_level!: number;
4949

5050
/**
5151
* The indent for each level. Can be a number or a CSS string.

src/cdk/tree/tree-using-legacy-key-manager.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,6 @@ class SimpleCdkTreeApp {
8383

8484
dataSource = of([new MinimalTestData('apple'), new MinimalTestData('banana')]);
8585

86-
@ViewChild('tree', {read: ElementRef}) tree: ElementRef<HTMLElement>;
87-
@ViewChildren('node') treeNodes: QueryList<ElementRef<HTMLElement>>;
86+
@ViewChild('tree', {read: ElementRef}) tree!: ElementRef<HTMLElement>;
87+
@ViewChildren('node') treeNodes!: QueryList<ElementRef<HTMLElement>>;
8888
}

src/cdk/tree/tree-with-tree-control.spec.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1451,8 +1451,8 @@ class SimpleCdkTreeApp {
14511451
dataSource = new FakeDataSource(this.treeControl);
14521452
indent: number | string = 28;
14531453

1454-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1455-
@ViewChildren(CdkTreeNodePadding) paddingNodes: QueryList<CdkTreeNodePadding<TestData>>;
1454+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
1455+
@ViewChildren(CdkTreeNodePadding) paddingNodes!: QueryList<CdkTreeNodePadding<TestData>>;
14561456
}
14571457

14581458
@Component({
@@ -1489,7 +1489,7 @@ class NestedCdkTreeApp {
14891489

14901490
dataSource = new FakeDataSource(this.treeControl);
14911491

1492-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1492+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
14931493
}
14941494

14951495
@Component({
@@ -1515,7 +1515,7 @@ class StaticNestedCdkTreeApp {
15151515

15161516
dataSource: FakeDataSource;
15171517

1518-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1518+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
15191519

15201520
constructor() {
15211521
const dataSource = new FakeDataSource(this.treeControl);
@@ -1552,7 +1552,7 @@ class WhenNodeNestedCdkTreeApp {
15521552

15531553
dataSource = new FakeDataSource(this.treeControl);
15541554

1555-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1555+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
15561556
}
15571557

15581558
@Component({
@@ -1576,7 +1576,7 @@ class CdkTreeAppWithToggle {
15761576
treeControl: TreeControl<TestData> = new FlatTreeControl(this.getLevel, this.isExpandable);
15771577
dataSource = new FakeDataSource(this.treeControl);
15781578

1579-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1579+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
15801580
}
15811581

15821582
@Component({
@@ -1604,7 +1604,7 @@ class NestedCdkTreeAppWithToggle {
16041604
treeControl: TreeControl<TestData> = new NestedTreeControl(this.getChildren);
16051605
dataSource = new FakeDataSource(this.treeControl);
16061606

1607-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1607+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
16081608
}
16091609

16101610
@Component({
@@ -1633,7 +1633,7 @@ class WhenNodeCdkTreeApp {
16331633

16341634
dataSource = new FakeDataSource(this.treeControl);
16351635

1636-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1636+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
16371637
}
16381638

16391639
@Component({
@@ -1660,7 +1660,7 @@ class ArrayDataSourceCdkTreeApp {
16601660
return this.dataSource.data;
16611661
}
16621662

1663-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1663+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
16641664
}
16651665

16661666
@Component({
@@ -1687,7 +1687,7 @@ class ObservableDataSourceCdkTreeApp {
16871687
return this.dataSource._dataChange;
16881688
}
16891689

1690-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1690+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
16911691
}
16921692

16931693
@Component({
@@ -1712,7 +1712,7 @@ class ArrayDataSourceNestedCdkTreeApp {
17121712
return this.dataSource.data;
17131713
}
17141714

1715-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1715+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
17161716
}
17171717

17181718
@Component({
@@ -1737,7 +1737,7 @@ class ObservableDataSourceNestedCdkTreeApp {
17371737
return this.dataSource._dataChange;
17381738
}
17391739

1740-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1740+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
17411741
}
17421742

17431743
@Component({
@@ -1763,7 +1763,7 @@ class DepthNestedCdkTreeApp {
17631763
return this.dataSource.data;
17641764
}
17651765

1766-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1766+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
17671767
}
17681768

17691769
@Component({
@@ -1796,7 +1796,7 @@ class CdkTreeAppWithTrackBy {
17961796
treeControl: TreeControl<TestData> = new FlatTreeControl(this.getLevel, this.isExpandable);
17971797
dataSource = new FakeDataSource(this.treeControl);
17981798

1799-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1799+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
18001800
}
18011801

18021802
@Component({
@@ -1834,5 +1834,5 @@ class NestedCdkTreeAppWithTrackBy {
18341834
return this.dataSource.data;
18351835
}
18361836

1837-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1837+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
18381838
}

src/cdk/tree/tree.spec.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1698,8 +1698,8 @@ class SimpleCdkTreeApp {
16981698
dataSource = new FakeDataSource();
16991699
indent: number | string = 28;
17001700

1701-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1702-
@ViewChildren(CdkTreeNodePadding) paddingNodes: QueryList<CdkTreeNodePadding<TestData>>;
1701+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
1702+
@ViewChildren(CdkTreeNodePadding) paddingNodes!: QueryList<CdkTreeNodePadding<TestData>>;
17031703
}
17041704

17051705
@Component({
@@ -1738,7 +1738,7 @@ class NestedCdkTreeApp {
17381738

17391739
dataSource = new FakeDataSource();
17401740

1741-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1741+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
17421742
}
17431743

17441744
@Component({
@@ -1762,7 +1762,7 @@ class StaticNestedCdkTreeApp {
17621762

17631763
dataSource: FakeDataSource;
17641764

1765-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1765+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
17661766

17671767
constructor() {
17681768
const dataSource = new FakeDataSource();
@@ -1798,7 +1798,7 @@ class WhenNodeNestedCdkTreeApp {
17981798

17991799
dataSource = new FakeDataSource();
18001800

1801-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1801+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
18021802
}
18031803

18041804
@Component({
@@ -1823,7 +1823,7 @@ class CdkTreeAppWithToggle {
18231823

18241824
dataSource = new FakeDataSource();
18251825

1826-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1826+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
18271827
}
18281828

18291829
@Component({
@@ -1854,7 +1854,7 @@ class NestedCdkTreeAppWithToggle {
18541854

18551855
dataSource = new FakeDataSource();
18561856

1857-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1857+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
18581858
}
18591859

18601860
@Component({
@@ -1884,7 +1884,7 @@ class WhenNodeCdkTreeApp {
18841884

18851885
dataSource = new FakeDataSource();
18861886

1887-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1887+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
18881888
}
18891889

18901890
@Component({
@@ -1911,7 +1911,7 @@ class ArrayDataSourceCdkTreeApp {
19111911
return this.dataSource.data;
19121912
}
19131913

1914-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1914+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
19151915

19161916
cdr = inject(ChangeDetectorRef);
19171917

@@ -1946,7 +1946,7 @@ class ObservableDataSourceCdkTreeApp {
19461946
return this.dataSource._dataChange;
19471947
}
19481948

1949-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1949+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
19501950
}
19511951

19521952
@Component({
@@ -1970,7 +1970,7 @@ class ArrayDataSourceNestedCdkTreeApp {
19701970
return this.dataSource.data;
19711971
}
19721972

1973-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1973+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
19741974
}
19751975

19761976
@Component({
@@ -1994,7 +1994,7 @@ class ObservableDataSourceNestedCdkTreeApp {
19941994
return this.dataSource._dataChange;
19951995
}
19961996

1997-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
1997+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
19981998
}
19991999

20002000
@Component({
@@ -2019,7 +2019,7 @@ class DepthNestedCdkTreeApp {
20192019
return this.dataSource.data;
20202020
}
20212021

2022-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
2022+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
20232023
}
20242024

20252025
@Component({
@@ -2052,7 +2052,7 @@ class CdkTreeAppWithTrackBy {
20522052

20532053
dataSource = new FakeDataSource();
20542054

2055-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
2055+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
20562056
}
20572057

20582058
@Component({
@@ -2089,7 +2089,7 @@ class NestedCdkTreeAppWithTrackBy {
20892089
return this.dataSource.data;
20902090
}
20912091

2092-
@ViewChild(CdkTree) tree: CdkTree<TestData>;
2092+
@ViewChild(CdkTree) tree!: CdkTree<TestData>;
20932093
}
20942094

20952095
class MinimalTestData {
@@ -2121,8 +2121,8 @@ class TypeaheadLabelFlatTreeWithThreeNodes {
21212121
new MinimalTestData('cherry', 'typeahead'),
21222122
]);
21232123

2124-
@ViewChild('tree', {read: ElementRef}) tree: ElementRef<HTMLElement>;
2125-
@ViewChildren('node') treeNodes: QueryList<ElementRef<HTMLElement>>;
2124+
@ViewChild('tree', {read: ElementRef}) tree!: ElementRef<HTMLElement>;
2125+
@ViewChildren('node') treeNodes!: QueryList<ElementRef<HTMLElement>>;
21262126
}
21272127

21282128
@Component({
@@ -2145,8 +2145,8 @@ class FlatTreeWithThreeNodes {
21452145
new MinimalTestData('cherry'),
21462146
]);
21472147

2148-
@ViewChild('tree', {read: ElementRef}) tree: ElementRef<HTMLElement>;
2149-
@ViewChildren('node') treeNodes: QueryList<ElementRef<HTMLElement>>;
2148+
@ViewChild('tree', {read: ElementRef}) tree!: ElementRef<HTMLElement>;
2149+
@ViewChildren('node') treeNodes!: QueryList<ElementRef<HTMLElement>>;
21502150
}
21512151

21522152
@Component({
@@ -2165,7 +2165,7 @@ class FlatTreeWithThreeNodes {
21652165
class IsExpandableOrderingTest {
21662166
getChildren = (node: MinimalTestData) => node.children;
21672167

2168-
@ViewChild(CdkTree) tree: CdkTree<MinimalTestData>;
2168+
@ViewChild(CdkTree) tree!: CdkTree<MinimalTestData>;
21692169

21702170
dataSource: MinimalTestData[];
21712171

0 commit comments

Comments
 (0)