Skip to content

Commit ebd9a97

Browse files
authored
refactor(multiple): enable noImplicitOverride typescript option (#22830)
* refactor(multiple): enable `noImplicitOverride` typescript option Enables the TypeScript `noImplicitOverride` option and adds the `override` keyword where needed. * build: add yarn script alias for tsc Adds a `yarn run` alias for the `tsc` binary. Since we have multiple versions of TypeScript installed, Yarn can pick another version (e.g. from `typescript-4.2`) for linking the `tsc` binary. This is unexpected because `yarn tsc` should resolve to the TypeScript version that is not installed through a Yarn alias. Changing the order in the Yarn lock file does not help, and it seems expected in the context of Yarn which does not know which package (regardless of alias or not) to prefer.
1 parent 77e5c21 commit ebd9a97

File tree

149 files changed

+350
-410
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+350
-410
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
"check-mdc-tests": "ts-node --project scripts/tsconfig.json scripts/check-mdc-tests.ts",
5151
"check-mdc-exports": "ts-node --project scripts/tsconfig.json scripts/check-mdc-exports.ts",
5252
"check-tools": "yarn tsc --project tools/tsconfig-ci.json",
53+
"tsc": "node ./node_modules/typescript/bin/tsc",
5354
"prepare": "husky install"
5455
},
5556
"version": "12.2.0-next.0",

src/bazel-tsconfig-build.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
"strictNullChecks": true,
1515
"noImplicitReturns": true,
1616
"strictFunctionTypes": true,
17+
"noImplicitOverride": true,
1718
"noFallthroughCasesInSwitch": true,
1819
"noImplicitAny": true,
1920
"noImplicitThis": true,

src/cdk-experimental/dialog/dialog-container.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ export class CdkDialogContainer extends BasePortalOutlet implements OnDestroy {
196196
* @deprecated To be turned into a method.
197197
* @breaking-change 10.0.0
198198
*/
199-
attachDomPortal = (portal: DomPortal) => {
199+
override attachDomPortal = (portal: DomPortal) => {
200200
if (this._portalHost.hasAttached() && (typeof ngDevMode === 'undefined' || ngDevMode)) {
201201
throwDialogContentAlreadyAttachedError();
202202
}

src/cdk-experimental/menu/menu-bar.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export class CdkMenuBar extends CdkMenuGroup implements Menu, AfterContentInit,
8686
super();
8787
}
8888

89-
ngAfterContentInit() {
89+
override ngAfterContentInit() {
9090
super.ngAfterContentInit();
9191

9292
this._setKeyManager();
@@ -287,7 +287,7 @@ export class CdkMenuBar extends CdkMenuGroup implements Menu, AfterContentInit,
287287
return !!this._openItem;
288288
}
289289

290-
ngOnDestroy() {
290+
override ngOnDestroy() {
291291
super.ngOnDestroy();
292292

293293
this._destroyed.next();

src/cdk-experimental/menu/menu-item-checkbox.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import {CdkMenuItem} from './menu-item';
3131
})
3232
export class CdkMenuItemCheckbox extends CdkMenuItemSelectable {
3333
/** Toggle the checked state of the checkbox. */
34-
trigger() {
34+
override trigger() {
3535
super.trigger();
3636

3737
if (!this.disabled) {

src/cdk-experimental/menu/menu-item-radio.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,15 +63,15 @@ export class CdkMenuItemRadio extends CdkMenuItemSelectable implements OnDestroy
6363
}
6464

6565
/** Toggles the checked state of the radio-button. */
66-
trigger() {
66+
override trigger() {
6767
super.trigger();
6868

6969
if (!this.disabled) {
7070
this._selectionDispatcher.notify(this.id, this.name);
7171
}
7272
}
7373

74-
ngOnDestroy() {
74+
override ngOnDestroy() {
7575
super.ngOnDestroy();
7676
this._removeDispatcherListener();
7777
}

src/cdk-experimental/menu/menu-item-selectable.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export abstract class CdkMenuItemSelectable extends CdkMenuItem {
4040
@Input() id: string = `cdk-selectable-item-${nextId++}`;
4141

4242
/** If the element is not disabled emit the click event */
43-
trigger() {
43+
override trigger() {
4444
if (!this.disabled) {
4545
this.toggled.next(this);
4646
}

src/cdk-experimental/menu/menu-stack.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,5 +130,5 @@ export class MenuStack {
130130
/** NoopMenuStack is a placeholder MenuStack used for inline menus. */
131131
export class NoopMenuStack extends MenuStack {
132132
/** Noop push - does not add elements to the MenuStack. */
133-
push(_: MenuStackItem) {}
133+
override push(_: MenuStackItem) {}
134134
}

src/cdk-experimental/menu/menu.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export class CdkMenu extends CdkMenuGroup implements Menu, AfterContentInit, OnI
124124
this._registerWithParentPanel();
125125
}
126126

127-
ngAfterContentInit() {
127+
override ngAfterContentInit() {
128128
super.ngAfterContentInit();
129129

130130
this._completeChangeEmitter();
@@ -348,7 +348,7 @@ export class CdkMenu extends CdkMenuGroup implements Menu, AfterContentInit, OnI
348348
return this._menuStack instanceof NoopMenuStack;
349349
}
350350

351-
ngOnDestroy() {
351+
override ngOnDestroy() {
352352
this._emitClosedEvent();
353353
this._pointerTracker?.destroy();
354354
}

src/cdk-experimental/popover-edit/table-directives.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,15 +362,15 @@ export class CdkPopoverEdit<C> implements AfterViewInit, OnDestroy {
362362
inputs: POPOVER_EDIT_INPUTS,
363363
})
364364
export class CdkPopoverEditTabOut<C> extends CdkPopoverEdit<C> {
365-
protected focusTrap?: FocusEscapeNotifier;
365+
protected override focusTrap?: FocusEscapeNotifier;
366366

367367
constructor(
368368
elementRef: ElementRef, viewContainerRef: ViewContainerRef, services: EditServices,
369369
protected readonly focusEscapeNotifierFactory: FocusEscapeNotifierFactory) {
370370
super(services, elementRef, viewContainerRef);
371371
}
372372

373-
protected initFocusTrap(): void {
373+
protected override initFocusTrap(): void {
374374
this.focusTrap = this.focusEscapeNotifierFactory.create(this.overlayRef!.overlayElement);
375375

376376
this.focusTrap.escapes().pipe(takeUntil(this.destroyed)).subscribe(direction => {

src/cdk/a11y/focus-trap/configurable-focus-trap.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import {ConfigurableFocusTrapConfig} from './configurable-focus-trap-config';
2121
*/
2222
export class ConfigurableFocusTrap extends FocusTrap implements ManagedFocusTrap {
2323
/** Whether the FocusTrap is enabled. */
24-
get enabled(): boolean { return this._enabled; }
25-
set enabled(value: boolean) {
24+
override get enabled(): boolean { return this._enabled; }
25+
override set enabled(value: boolean) {
2626
this._enabled = value;
2727
if (this._enabled) {
2828
this._focusTrapManager.register(this);
@@ -44,7 +44,7 @@ export class ConfigurableFocusTrap extends FocusTrap implements ManagedFocusTrap
4444
}
4545

4646
/** Notifies the FocusTrapManager that this FocusTrap will be destroyed. */
47-
destroy() {
47+
override destroy() {
4848
this._focusTrapManager.deregister(this);
4949
super.destroy();
5050
}

src/cdk/a11y/key-manager/activedescendant-key-manager.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,17 @@ export class ActiveDescendantKeyManager<T> extends ListKeyManager<Highlightable
2929
* from the previously active item.
3030
* @param index Index of the item to be set as active.
3131
*/
32-
setActiveItem(index: number): void;
32+
override setActiveItem(index: number): void;
3333

3434
/**
3535
* Sets the active item to the item to the specified one and adds the
3636
* active styles to the it. Also removes active styles from the
3737
* previously active item.
3838
* @param item Item to be set as active.
3939
*/
40-
setActiveItem(item: T): void;
40+
override setActiveItem(item: T): void;
4141

42-
setActiveItem(index: any): void {
42+
override setActiveItem(index: any): void {
4343
if (this.activeItem) {
4444
this.activeItem.setInactiveStyles();
4545
}

src/cdk/a11y/key-manager/focus-key-manager.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ export class FocusKeyManager<T> extends ListKeyManager<FocusableOption & T> {
3636
* index and focuses the newly active item.
3737
* @param index Index of the item to be set as active.
3838
*/
39-
setActiveItem(index: number): void;
39+
override setActiveItem(index: number): void;
4040

4141
/**
4242
* Sets the active item to the item that is specified and focuses it.
4343
* @param item Item to be set as active.
4444
*/
45-
setActiveItem(item: T): void;
45+
override setActiveItem(item: T): void;
4646

47-
setActiveItem(item: any): void {
47+
override setActiveItem(item: any): void {
4848
super.setActiveItem(item);
4949

5050
if (this.activeItem) {

src/cdk/drag-drop/directives/drag.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6601,7 +6601,7 @@ class DraggableWithCanvasInDropZone extends DraggableInDropZone implements After
66016601
super(elementRef);
66026602
}
66036603

6604-
ngAfterViewInit() {
6604+
override ngAfterViewInit() {
66056605
super.ngAfterViewInit();
66066606
const canvases = this._elementRef.nativeElement.querySelectorAll('canvas');
66076607

src/cdk/overlay/dispatchers/overlay-keyboard-dispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export class OverlayKeyboardDispatcher extends BaseOverlayDispatcher {
2525
}
2626

2727
/** Add a new overlay to the list of attached overlay refs. */
28-
add(overlayRef: OverlayReference): void {
28+
override add(overlayRef: OverlayReference): void {
2929
super.add(overlayRef);
3030

3131
// Lazily start dispatcher once first overlay is added

src/cdk/overlay/dispatchers/overlay-outside-click-dispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ export class OverlayOutsideClickDispatcher extends BaseOverlayDispatcher {
2727
}
2828

2929
/** Add a new overlay to the list of attached overlay refs. */
30-
add(overlayRef: OverlayReference): void {
30+
override add(overlayRef: OverlayReference): void {
3131
super.add(overlayRef);
3232

3333
// Safari on iOS does not generate click events for non-interactive

src/cdk/overlay/fullscreen-overlay-container.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,15 @@ export class FullscreenOverlayContainer extends OverlayContainer implements OnDe
2828
super(_document, platform);
2929
}
3030

31-
ngOnDestroy() {
31+
override ngOnDestroy() {
3232
super.ngOnDestroy();
3333

3434
if (this._fullScreenEventName && this._fullScreenListener) {
3535
this._document.removeEventListener(this._fullScreenEventName, this._fullScreenListener);
3636
}
3737
}
3838

39-
protected _createContainer(): void {
39+
protected override _createContainer(): void {
4040
super._createContainer();
4141
this._adjustParentForFullscreenChange();
4242
this._addFullscreenChangeListener(() => this._adjustParentForFullscreenChange());

src/cdk/overlay/overlay.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ describe('Overlay', () => {
337337
class CustomErrorHandler extends ErrorHandler {
338338
constructor(private _overlay: Overlay) { super(); }
339339

340-
handleError(error: any) {
340+
override handleError(error: any) {
341341
const overlayRef = this._overlay.create({hasBackdrop: !!error});
342342
overlayRef.dispose();
343343
}

src/cdk/portal/dom-portal-outlet.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ export class DomPortalOutlet extends BasePortalOutlet {
115115
* @deprecated To be turned into a method.
116116
* @breaking-change 10.0.0
117117
*/
118-
attachDomPortal = (portal: DomPortal) => {
118+
override attachDomPortal = (portal: DomPortal) => {
119119
// @breaking-change 10.0.0 Remove check and error once the
120120
// `_document` constructor parameter is required.
121121
if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {
@@ -146,7 +146,7 @@ export class DomPortalOutlet extends BasePortalOutlet {
146146
/**
147147
* Clears out a portal from the DOM.
148148
*/
149-
dispose(): void {
149+
override dispose(): void {
150150
super.dispose();
151151
if (this.outletElement.parentNode != null) {
152152
this.outletElement.parentNode.removeChild(this.outletElement);

src/cdk/portal/portal-directives.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ export class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestr
195195
* @deprecated To be turned into a method.
196196
* @breaking-change 10.0.0
197197
*/
198-
attachDomPortal = (portal: DomPortal) => {
198+
override attachDomPortal = (portal: DomPortal) => {
199199
// @breaking-change 9.0.0 Remove check and error once the
200200
// `_document` constructor parameter is required.
201201
if (!this._document && (typeof ngDevMode === 'undefined' || ngDevMode)) {

src/cdk/portal/portal.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,12 @@ export class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {
144144
* When a context is provided it will override the `context` property of the `TemplatePortal`
145145
* instance.
146146
*/
147-
attach(host: PortalOutlet, context: C | undefined = this.context): EmbeddedViewRef<C> {
147+
override attach(host: PortalOutlet, context: C | undefined = this.context): EmbeddedViewRef<C> {
148148
this.context = context;
149149
return super.attach(host);
150150
}
151151

152-
detach(): void {
152+
override detach(): void {
153153
this.context = undefined;
154154
return super.detach();
155155
}

src/cdk/scrolling/virtual-scroll-viewport.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ export class CdkVirtualScrollViewport extends CdkScrollable implements OnInit, O
166166
/** Subscription to changes in the viewport size. */
167167
private _viewportChanges = Subscription.EMPTY;
168168

169-
constructor(public elementRef: ElementRef<HTMLElement>,
169+
constructor(public override elementRef: ElementRef<HTMLElement>,
170170
private _changeDetectorRef: ChangeDetectorRef,
171171
ngZone: NgZone,
172172
@Optional() @Inject(VIRTUAL_SCROLL_STRATEGY)
@@ -185,7 +185,7 @@ export class CdkVirtualScrollViewport extends CdkScrollable implements OnInit, O
185185
});
186186
}
187187

188-
ngOnInit() {
188+
override ngOnInit() {
189189
super.ngOnInit();
190190

191191
// It's still too early to measure the viewport at this point. Deferring with a promise allows
@@ -210,7 +210,7 @@ export class CdkVirtualScrollViewport extends CdkScrollable implements OnInit, O
210210
}));
211211
}
212212

213-
ngOnDestroy() {
213+
override ngOnDestroy() {
214214
this.detach();
215215
this._scrollStrategy.detach();
216216

@@ -367,7 +367,8 @@ export class CdkVirtualScrollViewport extends CdkScrollable implements OnInit, O
367367
* @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'
368368
* in horizontal mode.
369369
*/
370-
measureScrollOffset(from?: 'top' | 'left' | 'right' | 'bottom' | 'start' | 'end'): number {
370+
override measureScrollOffset(
371+
from?: 'top' | 'left' | 'right' | 'bottom' | 'start' | 'end'): number {
371372
return from ?
372373
super.measureScrollOffset(from) :
373374
super.measureScrollOffset(this.orientation === 'horizontal' ? 'start' : 'top');

src/cdk/table/row.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export class CdkHeaderRowDef extends _CdkHeaderRowDefBase implements CanStick, O
104104

105105
// Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.
106106
// Explicitly define it so that the method is called as part of the Angular lifecycle.
107-
ngOnChanges(changes: SimpleChanges): void {
107+
override ngOnChanges(changes: SimpleChanges): void {
108108
super.ngOnChanges(changes);
109109
}
110110

@@ -135,7 +135,7 @@ export class CdkFooterRowDef extends _CdkFooterRowDefBase implements CanStick, O
135135

136136
// Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.
137137
// Explicitly define it so that the method is called as part of the Angular lifecycle.
138-
ngOnChanges(changes: SimpleChanges): void {
138+
override ngOnChanges(changes: SimpleChanges): void {
139139
super.ngOnChanges(changes);
140140
}
141141

src/cdk/testing/private/mock-ng-zone.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ import {EventEmitter, Injectable, NgZone} from '@angular/core';
1818
*/
1919
@Injectable()
2020
export class MockNgZone extends NgZone {
21-
readonly onStable = new EventEmitter(false);
21+
override readonly onStable = new EventEmitter(false);
2222

2323
constructor() {
2424
super({enableLongStackTrace: false});
2525
}
2626

27-
run(fn: Function): any {
27+
override run(fn: Function): any {
2828
return fn();
2929
}
3030

31-
runOutsideAngular(fn: Function): any {
31+
override runOutsideAngular(fn: Function): any {
3232
return fn();
3333
}
3434

src/cdk/testing/tests/harnesses/sub-component-harness.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,5 @@ export class SubComponentHarness extends ComponentHarness {
4141
}
4242

4343
export class SubComponentSpecialHarness extends SubComponentHarness {
44-
static readonly hostSelector = 'test-sub.test-special';
44+
static override readonly hostSelector = 'test-sub.test-special';
4545
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ export class FlatTreeControl<T, K = T> extends BaseTreeControl<T, K> {
1818

1919
/** Construct with flat tree data node functions getLevel and isExpandable. */
2020
constructor(
21-
public getLevel: (dataNode: T) => number, public isExpandable: (dataNode: T) => boolean,
21+
public override getLevel: (dataNode: T) => number,
22+
public override isExpandable: (dataNode: T) => boolean,
2223
public options?: FlatTreeControlOptions<T, K>) {
2324
super();
2425

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export interface NestedTreeControlOptions<T, K> {
1818
export class NestedTreeControl<T, K = T> extends BaseTreeControl<T, K> {
1919
/** Construct with nested tree function getChildren. */
2020
constructor(
21-
public getChildren: (dataNode: T) => (Observable<T[]>| T[] | undefined | null),
21+
public override getChildren: (dataNode: T) => (Observable<T[]>| T[] | undefined | null),
2222
public options?: NestedTreeControlOptions<T, K>) {
2323
super();
2424

0 commit comments

Comments
 (0)