Skip to content

Commit 6bcfefe

Browse files
committed
Fix a number of calls to on() for strictFunctions
WIth strictFunctions, the callback can no longer use implicit casts to a subclass for parameter types. This pattern was widely used with `.on` event callbacks in the dom
1 parent e5b4bdc commit 6bcfefe

7 files changed

Lines changed: 28 additions & 27 deletions

File tree

src/vs/base/browser/ui/actionbar/actionbar.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,17 +118,18 @@ export class BaseActionItem extends EventEmitter implements IActionItem {
118118

119119
this.builder.on(EventType.Tap, e => this.onClick(e));
120120

121-
this.builder.on(DOM.EventType.MOUSE_DOWN, (e: MouseEvent) => {
121+
this.builder.on(DOM.EventType.MOUSE_DOWN, (e) => {
122122
if (!enableDragging) {
123123
DOM.EventHelper.stop(e, true); // do not run when dragging is on because that would disable it
124124
}
125125

126-
if (this._action.enabled && e.button === 0) {
126+
const mouseEvent = e as MouseEvent;
127+
if (this._action.enabled && mouseEvent.button === 0) {
127128
this.builder.addClass('active');
128129
}
129130
});
130131

131-
this.builder.on(DOM.EventType.CLICK, (e: MouseEvent) => {
132+
this.builder.on(DOM.EventType.CLICK, (e) => {
132133
DOM.EventHelper.stop(e, true);
133134
// See https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Interact_with_the_clipboard
134135
// > Writing to the clipboard
@@ -145,7 +146,7 @@ export class BaseActionItem extends EventEmitter implements IActionItem {
145146
}
146147
});
147148

148-
this.builder.on([DOM.EventType.MOUSE_UP, DOM.EventType.MOUSE_OUT], (e: MouseEvent) => {
149+
this.builder.on([DOM.EventType.MOUSE_UP, DOM.EventType.MOUSE_OUT], (e) => {
149150
DOM.EventHelper.stop(e);
150151
this.builder.removeClass('active');
151152
});
@@ -447,8 +448,8 @@ export class ActionBar extends EventEmitter implements IActionRunner {
447448
break;
448449
}
449450

450-
$(this.domNode).on(DOM.EventType.KEY_DOWN, (e: KeyboardEvent) => {
451-
let event = new StandardKeyboardEvent(e);
451+
$(this.domNode).on(DOM.EventType.KEY_DOWN, (e) => {
452+
let event = new StandardKeyboardEvent(e as KeyboardEvent);
452453
let eventHandled = true;
453454

454455
if (event.equals(previousKey)) {
@@ -469,8 +470,8 @@ export class ActionBar extends EventEmitter implements IActionRunner {
469470
}
470471
});
471472

472-
$(this.domNode).on(DOM.EventType.KEY_UP, (e: KeyboardEvent) => {
473-
let event = new StandardKeyboardEvent(e);
473+
$(this.domNode).on(DOM.EventType.KEY_UP, (e) => {
474+
let event = new StandardKeyboardEvent(e as KeyboardEvent);
474475

475476
// Run action on Enter/Space
476477
if (event.equals(KeyCode.Enter) || event.equals(KeyCode.Space)) {

src/vs/base/browser/ui/button/button.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ export class Button extends EventEmitter {
6767
this.emit(DOM.EventType.CLICK, e);
6868
});
6969

70-
this.$el.on(DOM.EventType.KEY_DOWN, (e: KeyboardEvent) => {
71-
let event = new StandardKeyboardEvent(e);
70+
this.$el.on(DOM.EventType.KEY_DOWN, (e) => {
71+
let event = new StandardKeyboardEvent(e as KeyboardEvent);
7272
let eventHandled = false;
7373
if (this.enabled && event.equals(KeyCode.Enter) || event.equals(KeyCode.Space)) {
7474
this.emit(DOM.EventType.CLICK, e);
@@ -83,7 +83,7 @@ export class Button extends EventEmitter {
8383
}
8484
});
8585

86-
this.$el.on(DOM.EventType.MOUSE_OVER, (e: MouseEvent) => {
86+
this.$el.on(DOM.EventType.MOUSE_OVER, (e) => {
8787
if (!this.$el.hasClass('disabled')) {
8888
const hoverBackground = this.buttonHoverBackground ? this.buttonHoverBackground.toString() : null;
8989
if (hoverBackground) {
@@ -92,7 +92,7 @@ export class Button extends EventEmitter {
9292
}
9393
});
9494

95-
this.$el.on(DOM.EventType.MOUSE_OUT, (e: MouseEvent) => {
95+
this.$el.on(DOM.EventType.MOUSE_OUT, (e) => {
9696
this.applyStyles(); // restore standard styles
9797
});
9898

src/vs/base/browser/ui/sash/sash.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,9 @@ export class Sash extends EventEmitter {
6969

7070
this.gesture = new Gesture(this.$e.getHTMLElement());
7171

72-
this.$e.on(DOM.EventType.MOUSE_DOWN, (e: MouseEvent) => { this.onMouseDown(e); });
73-
this.$e.on(DOM.EventType.DBLCLICK, (e: MouseEvent) => { this.emit('reset', e); });
74-
this.$e.on(EventType.Start, (e: GestureEvent) => { this.onTouchStart(e); });
72+
this.$e.on(DOM.EventType.MOUSE_DOWN, (e) => { this.onMouseDown(e as MouseEvent); });
73+
this.$e.on(DOM.EventType.DBLCLICK, (e) => { this.emit('reset', e as MouseEvent); });
74+
this.$e.on(EventType.Start, (e) => { this.onTouchStart(e as GestureEvent); });
7575

7676
this.size = options.baseSize || 5;
7777

@@ -144,9 +144,9 @@ export class Sash extends EventEmitter {
144144
let lastCurrentX = startX;
145145
let lastCurrentY = startY;
146146

147-
$window.on('mousemove', (e: MouseEvent) => {
147+
$window.on('mousemove', (e) => {
148148
DOM.EventHelper.stop(e, false);
149-
let mouseMoveEvent = new StandardMouseEvent(e);
149+
let mouseMoveEvent = new StandardMouseEvent(e as MouseEvent);
150150

151151
let event: ISashEvent = {
152152
startX: startX,
@@ -159,7 +159,7 @@ export class Sash extends EventEmitter {
159159
lastCurrentY = mouseMoveEvent.posy;
160160

161161
this.emit('change', event);
162-
}).once('mouseup', (e: MouseEvent) => {
162+
}).once('mouseup', (e) => {
163163
DOM.EventHelper.stop(e, false);
164164
this.$e.removeClass('active');
165165
this.emit('end');

src/vs/base/common/glob.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,7 @@ function isRelativePattern(obj: any): obj is IRelativePattern {
493493
*/
494494
export function parseToAsync(expression: IExpression, options?: IGlobOptions): ParsedExpression {
495495
const parsedExpression = parse(expression, options);
496-
return (path: string, basename?: string, siblingsFn?: () => TPromise<string[]>): TPromise<string> => {
496+
return (path: string, basename?: string, siblingsFn?: () => string[] | TPromise<string[]>): string | TPromise<string> => {
497497
const result = parsedExpression(path, basename, siblingsFn);
498498
return result instanceof TPromise ? result : TPromise.as(result);
499499
};

src/vs/base/common/json.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -786,7 +786,7 @@ export function getLocation(text: string, position: number): Location {
786786
path: segments,
787787
previousNode,
788788
isAtPropertyKey,
789-
matches: (pattern: string[]) => {
789+
matches: (pattern: JSONPath) => {
790790
let k = 0;
791791
for (let i = 0; k < pattern.length && i < segments.length; i++) {
792792
if (pattern[k] === segments[i] || pattern[k] === '*') {

src/vs/base/parts/quickopen/browser/quickOpenWidget.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ export class QuickOpenWidget implements IModelProvider {
151151
this.builder = $().div((div: Builder) => {
152152

153153
// Eventing
154-
div.on(DOM.EventType.KEY_DOWN, (e: KeyboardEvent) => {
155-
const keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e);
154+
div.on(DOM.EventType.KEY_DOWN, (e) => {
155+
const keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e as KeyboardEvent);
156156
if (keyboardEvent.keyCode === KeyCode.Escape) {
157157
DOM.EventHelper.stop(e, true);
158158

@@ -261,8 +261,8 @@ export class QuickOpenWidget implements IModelProvider {
261261
}
262262
}));
263263
}).
264-
on(DOM.EventType.KEY_DOWN, (e: KeyboardEvent) => {
265-
const keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e);
264+
on(DOM.EventType.KEY_DOWN, (e) => {
265+
const keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e as KeyboardEvent);
266266

267267
// Only handle when in quick navigation mode
268268
if (!this.quickNavigateConfiguration) {
@@ -276,8 +276,8 @@ export class QuickOpenWidget implements IModelProvider {
276276
this.navigateInTree(keyboardEvent.keyCode);
277277
}
278278
}).
279-
on(DOM.EventType.KEY_UP, (e: KeyboardEvent) => {
280-
const keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e);
279+
on(DOM.EventType.KEY_UP, (e) => {
280+
const keyboardEvent: StandardKeyboardEvent = new StandardKeyboardEvent(e as KeyboardEvent);
281281
const keyCode = keyboardEvent.keyCode;
282282

283283
// Only handle when in quick navigation mode

src/vs/platform/contextview/browser/contextMenuHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export class ContextMenuHandler {
8080
}
8181
if (container) {
8282
this.$el = $(container);
83-
this.$el.on('mousedown', (e: MouseEvent) => this.onMouseDown(e));
83+
this.$el.on('mousedown', (e: Event) => this.onMouseDown(e as MouseEvent));
8484
}
8585
}
8686

0 commit comments

Comments
 (0)