Skip to content

Commit 44e3006

Browse files
Lightning00BladeDevtools-frontend LUCI CQ
authored and
Devtools-frontend LUCI CQ
committed
[eslint] Prefer TypeScript interface over type aliases.
We have a mix of `type` and `interface` usage throughout our codebase, that is sometimes difficult to follow and reason about. We should follow the suggestion from the TypeScript PM and use `interface` consistently where possible. This leads to better type display in errors and makes our codebase easier to read (b/c consistency). This CL adds the `@typescript-eslint/consistent-type-definitions` ESLint rule to accomplish this. Fixed: 387237537 Change-Id: Idb9e8275ddd8f633021d6cf1c933e2e55f980e45 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6152576 Auto-Submit: Nikolay Vitkov <[email protected]> Commit-Queue: Benedikt Meurer <[email protected]> Reviewed-by: Benedikt Meurer <[email protected]>
1 parent 845513d commit 44e3006

File tree

233 files changed

+1694
-1616
lines changed

Some content is hidden

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

233 files changed

+1694
-1616
lines changed

eslint.config.mjs

+2
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,8 @@ export default [
453453
},
454454
],
455455

456+
'@typescript-eslint/consistent-type-definitions': ['error', 'interface'],
457+
456458
'rulesdir/no-underscored-properties': 'error',
457459
'rulesdir/prefer-readonly-keyword': 'error',
458460
'rulesdir/inline-type-imports': 'error',

front_end/core/common/Console.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@ export const enum Events {
7878
MESSAGE_ADDED = 'messageAdded',
7979
}
8080

81-
export type EventTypes = {
82-
[Events.MESSAGE_ADDED]: Message,
83-
};
81+
export interface EventTypes {
82+
[Events.MESSAGE_ADDED]: Message;
83+
}
8484

8585
export const enum MessageLevel {
8686
INFO = 'info',

front_end/core/common/EventTarget.test.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ const enum Events {
1616
UNION_EVENT = 'UnionEvent',
1717
}
1818

19-
type TestEvents = {
20-
[Events.VOID_EVENT]: void,
21-
[Events.NUMBER_EVENT]: number,
22-
[Events.KEY_VALUE_EVENT]: {key: string, value: number},
23-
[Events.BOOLEAN_EVENT]: boolean,
24-
[Events.UNION_EVENT]: string|null,
25-
};
19+
interface TestEvents {
20+
[Events.VOID_EVENT]: void;
21+
[Events.NUMBER_EVENT]: number;
22+
[Events.KEY_VALUE_EVENT]: {key: string, value: number};
23+
[Events.BOOLEAN_EVENT]: boolean;
24+
[Events.UNION_EVENT]: string|null;
25+
}
2626

2727
class TypedEventEmitter extends Common.ObjectWrapper.ObjectWrapper<TestEvents> {
2828
testValidArgumentTypes() {

front_end/core/common/EventTarget.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ export function removeEventListeners(eventList: EventDescriptor[]): void {
2222

2323
// This type can be used as the type parameter for `EventTarget`/`ObjectWrapper`
2424
// when the set of events is not known at compile time.
25-
export type GenericEvents = {
25+
export interface GenericEvents {
2626
// eslint-disable-next-line @typescript-eslint/no-explicit-any
27-
[eventName: string]: any,
28-
};
27+
[eventName: string]: any;
28+
}
2929

3030
export type EventPayloadToRestParameters<Events, T extends keyof Events> = Events[T] extends void ? [] : [Events[T]];
3131
export type EventListener<Events, T extends keyof Events> = (arg0: EventTargetEvent<Events[T], Events>) => void;

front_end/core/host/AidaClient.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,6 @@ export const enum Events {
495495
AIDA_AVAILABILITY_CHANGED = 'aidaAvailabilityChanged',
496496
}
497497

498-
export type EventTypes = {
499-
[Events.AIDA_AVAILABILITY_CHANGED]: void,
500-
};
498+
export interface EventTypes {
499+
[Events.AIDA_AVAILABILITY_CHANGED]: void;
500+
}

front_end/core/host/InspectorFrontendHostAPI.ts

+30-30
Original file line numberDiff line numberDiff line change
@@ -204,36 +204,36 @@ export interface KeyDownEvent {
204204
// `EventTypes` is not used at runtime.
205205
// Please note that the "dispatch" side can't be type-checked as the dispatch is
206206
// done dynamically.
207-
export type EventTypes = {
208-
[Events.AppendedToURL]: Platform.DevToolsPath.RawPathString|Platform.DevToolsPath.UrlString,
209-
[Events.CanceledSaveURL]: Platform.DevToolsPath.UrlString,
210-
[Events.ColorThemeChanged]: void,
211-
[Events.ContextMenuCleared]: void,
212-
[Events.ContextMenuItemSelected]: number,
213-
[Events.DeviceCountUpdated]: number,
214-
[Events.DevicesDiscoveryConfigChanged]: Adb.Config,
215-
[Events.DevicesPortForwardingStatusChanged]: void,
216-
[Events.DevicesUpdated]: void,
217-
[Events.DispatchMessage]: string,
218-
[Events.DispatchMessageChunk]: DispatchMessageChunkEvent,
219-
[Events.EnterInspectElementMode]: void,
220-
[Events.EyeDropperPickedColor]: EyeDropperPickedColorEvent,
221-
[Events.FileSystemsLoaded]: DevToolsFileSystem[],
222-
[Events.FileSystemRemoved]: Platform.DevToolsPath.RawPathString,
223-
[Events.FileSystemAdded]: FileSystemAddedEvent,
224-
[Events.FileSystemFilesChangedAddedRemoved]: FilesChangedEvent,
225-
[Events.IndexingTotalWorkCalculated]: IndexingTotalWorkCalculatedEvent,
226-
[Events.IndexingWorked]: IndexingWorkedEvent,
227-
[Events.IndexingDone]: IndexingEvent,
228-
[Events.KeyEventUnhandled]: KeyEventUnhandledEvent,
229-
[Events.ReloadInspectedPage]: boolean,
230-
[Events.RevealSourceLine]: RevealSourceLineEvent,
231-
[Events.SavedURL]: SavedURLEvent,
232-
[Events.SearchCompleted]: SearchCompletedEvent,
233-
[Events.SetInspectedTabId]: string,
234-
[Events.SetUseSoftMenu]: boolean,
235-
[Events.ShowPanel]: string,
236-
};
207+
export interface EventTypes {
208+
[Events.AppendedToURL]: Platform.DevToolsPath.RawPathString|Platform.DevToolsPath.UrlString;
209+
[Events.CanceledSaveURL]: Platform.DevToolsPath.UrlString;
210+
[Events.ColorThemeChanged]: void;
211+
[Events.ContextMenuCleared]: void;
212+
[Events.ContextMenuItemSelected]: number;
213+
[Events.DeviceCountUpdated]: number;
214+
[Events.DevicesDiscoveryConfigChanged]: Adb.Config;
215+
[Events.DevicesPortForwardingStatusChanged]: void;
216+
[Events.DevicesUpdated]: void;
217+
[Events.DispatchMessage]: string;
218+
[Events.DispatchMessageChunk]: DispatchMessageChunkEvent;
219+
[Events.EnterInspectElementMode]: void;
220+
[Events.EyeDropperPickedColor]: EyeDropperPickedColorEvent;
221+
[Events.FileSystemsLoaded]: DevToolsFileSystem[];
222+
[Events.FileSystemRemoved]: Platform.DevToolsPath.RawPathString;
223+
[Events.FileSystemAdded]: FileSystemAddedEvent;
224+
[Events.FileSystemFilesChangedAddedRemoved]: FilesChangedEvent;
225+
[Events.IndexingTotalWorkCalculated]: IndexingTotalWorkCalculatedEvent;
226+
[Events.IndexingWorked]: IndexingWorkedEvent;
227+
[Events.IndexingDone]: IndexingEvent;
228+
[Events.KeyEventUnhandled]: KeyEventUnhandledEvent;
229+
[Events.ReloadInspectedPage]: boolean;
230+
[Events.RevealSourceLine]: RevealSourceLineEvent;
231+
[Events.SavedURL]: SavedURLEvent;
232+
[Events.SearchCompleted]: SearchCompletedEvent;
233+
[Events.SetInspectedTabId]: string;
234+
[Events.SetUseSoftMenu]: boolean;
235+
[Events.ShowPanel]: string;
236+
}
237237

238238
export interface InspectorFrontendHostAPI {
239239
addFileSystem(type?: string): void;

front_end/core/i18n/i18nTypes.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
export type Values = {
6-
[key: string]: string|boolean|number,
7-
};
5+
export interface Values {
6+
[key: string]: string|boolean|number;
7+
}
88

99
export interface SerializedMessage {
1010
string: string;

front_end/core/platform/ServerTiming.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ const defaultWarningMessages: ServerTimingParsingWarningMessage = {
2929
},
3030
};
3131

32-
export type ServerTimingParsingWarningMessage = {
33-
deprecratedSyntax: () => string,
34-
duplicateParameter: (parameter: string) => string,
35-
noValueFoundForParameter: (parameter: string) => string,
36-
unrecognizedParameter: (parameter: string) => string,
37-
extraneousTrailingCharacters: () => string,
38-
unableToParseValue: (parameter: string, value: string) => string,
39-
};
32+
export interface ServerTimingParsingWarningMessage {
33+
deprecratedSyntax: () => string;
34+
duplicateParameter: (parameter: string) => string;
35+
noValueFoundForParameter: (parameter: string) => string;
36+
unrecognizedParameter: (parameter: string) => string;
37+
extraneousTrailingCharacters: () => string;
38+
unableToParseValue: (parameter: string, value: string) => string;
39+
}
4040

4141
export class ServerTiming {
4242
metric: string;

front_end/core/protocol_client/InspectorBackend.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ export const DevToolsStubErrorCode = -32015;
3939
const GenericErrorCode = -32000;
4040
const ConnectionClosedErrorCode = -32001;
4141

42-
type MessageParams = {
42+
interface MessageParams {
4343
// eslint-disable-next-line @typescript-eslint/no-explicit-any
44-
[x: string]: any,
45-
};
44+
[x: string]: any;
45+
}
4646

4747
type ProtocolDomainName = ProtocolProxyApi.ProtocolDomainName;
4848

@@ -52,15 +52,15 @@ export interface MessageError {
5252
data?: string|null;
5353
}
5454

55-
export type Message = {
56-
sessionId?: string,
57-
url?: Platform.DevToolsPath.UrlString,
58-
id?: number,
59-
error?: MessageError|null,
60-
result?: Object|null,
61-
method?: QualifiedName,
62-
params?: MessageParams|null,
63-
};
55+
export interface Message {
56+
sessionId?: string;
57+
url?: Platform.DevToolsPath.UrlString;
58+
id?: number;
59+
error?: MessageError|null;
60+
result?: Object|null;
61+
method?: QualifiedName;
62+
params?: MessageParams|null;
63+
}
6464

6565
interface EventMessage extends Message {
6666
method: QualifiedName;

front_end/core/sdk/AccessibilityModel.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,9 @@ export const enum Events {
196196
TREE_UPDATED = 'TreeUpdated',
197197
}
198198

199-
export type EventTypes = {
200-
[Events.TREE_UPDATED]: {root?: AccessibilityNode},
201-
};
199+
export interface EventTypes {
200+
[Events.TREE_UPDATED]: {root?: AccessibilityNode};
201+
}
202202

203203
export class AccessibilityModel extends SDKModel<EventTypes> implements ProtocolProxyApi.AccessibilityDispatcher {
204204
agent: ProtocolProxyApi.AccessibilityApi;

front_end/core/sdk/AnimationModel.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -478,11 +478,11 @@ export enum Events {
478478
/* eslint-enable @typescript-eslint/naming-convention */
479479
}
480480

481-
export type EventTypes = {
482-
[Events.AnimationGroupStarted]: AnimationGroup,
483-
[Events.AnimationGroupUpdated]: AnimationGroup,
484-
[Events.ModelReset]: void,
485-
};
481+
export interface EventTypes {
482+
[Events.AnimationGroupStarted]: AnimationGroup;
483+
[Events.AnimationGroupUpdated]: AnimationGroup;
484+
[Events.ModelReset]: void;
485+
}
486486

487487
export class AnimationImpl {
488488
readonly #animationModel: AnimationModel;

front_end/core/sdk/AutofillModel.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,6 @@ export interface AddressFormFilledEvent {
175175
event: Protocol.Autofill.AddressFormFilledEvent;
176176
}
177177

178-
export type EventTypes = {
179-
[Events.ADDRESS_FORM_FILLED]: AddressFormFilledEvent,
180-
};
178+
export interface EventTypes {
179+
[Events.ADDRESS_FORM_FILLED]: AddressFormFilledEvent;
180+
}

front_end/core/sdk/CPUProfilerModel.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,10 @@ export const enum Events {
165165
CONSOLE_PROFILE_FINISHED = 'ConsoleProfileFinished',
166166
}
167167

168-
export type EventTypes = {
169-
[Events.CONSOLE_PROFILE_STARTED]: EventData,
170-
[Events.CONSOLE_PROFILE_FINISHED]: ProfileFinishedData,
171-
};
168+
export interface EventTypes {
169+
[Events.CONSOLE_PROFILE_STARTED]: EventData;
170+
[Events.CONSOLE_PROFILE_FINISHED]: ProfileFinishedData;
171+
}
172172

173173
SDKModel.register(CPUProfilerModel, {capabilities: Capability.JS, autostart: true});
174174

front_end/core/sdk/CPUThrottlingManager.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,10 @@ export const enum Events {
123123
HARDWARE_CONCURRENCY_CHANGED = 'HardwareConcurrencyChanged',
124124
}
125125

126-
export type EventTypes = {
127-
[Events.RATE_CHANGED]: number,
128-
[Events.HARDWARE_CONCURRENCY_CHANGED]: number,
129-
};
126+
export interface EventTypes {
127+
[Events.RATE_CHANGED]: number;
128+
[Events.HARDWARE_CONCURRENCY_CHANGED]: number;
129+
}
130130

131131
export function throttlingManager(): CPUThrottlingManager {
132132
return CPUThrottlingManager.instance();

front_end/core/sdk/CSSModel.ts

+14-14
Original file line numberDiff line numberDiff line change
@@ -927,17 +927,17 @@ export interface ComputedStyleUpdatedEvent {
927927
nodeId: Protocol.DOM.NodeId;
928928
}
929929

930-
export type EventTypes = {
931-
[Events.FontsUpdated]: void,
932-
[Events.MediaQueryResultChanged]: void,
933-
[Events.ModelWasEnabled]: void,
934-
[Events.ModelDisposed]: CSSModel,
935-
[Events.PseudoStateForced]: PseudoStateForcedEvent,
936-
[Events.StyleSheetAdded]: CSSStyleSheetHeader,
937-
[Events.StyleSheetChanged]: StyleSheetChangedEvent,
938-
[Events.StyleSheetRemoved]: CSSStyleSheetHeader,
939-
[Events.ComputedStyleUpdated]: ComputedStyleUpdatedEvent,
940-
};
930+
export interface EventTypes {
931+
[Events.FontsUpdated]: void;
932+
[Events.MediaQueryResultChanged]: void;
933+
[Events.ModelWasEnabled]: void;
934+
[Events.ModelDisposed]: CSSModel;
935+
[Events.PseudoStateForced]: PseudoStateForcedEvent;
936+
[Events.StyleSheetAdded]: CSSStyleSheetHeader;
937+
[Events.StyleSheetChanged]: StyleSheetChangedEvent;
938+
[Events.StyleSheetRemoved]: CSSStyleSheetHeader;
939+
[Events.ComputedStyleUpdated]: ComputedStyleUpdatedEvent;
940+
}
941941

942942
const PseudoStateMarker = 'pseudo-state-marker';
943943

@@ -1076,9 +1076,9 @@ export const enum CSSPropertyTrackerEvents {
10761076
TRACKED_CSS_PROPERTIES_UPDATED = 'TrackedCSSPropertiesUpdated',
10771077
}
10781078

1079-
export type CSSPropertyTrackerEventTypes = {
1080-
[CSSPropertyTrackerEvents.TRACKED_CSS_PROPERTIES_UPDATED]: (DOMNode|null)[],
1081-
};
1079+
export interface CSSPropertyTrackerEventTypes {
1080+
[CSSPropertyTrackerEvents.TRACKED_CSS_PROPERTIES_UPDATED]: (DOMNode|null)[];
1081+
}
10821082

10831083
SDKModel.register(CSSModel, {capabilities: Capability.DOM, autostart: true});
10841084
export interface ContrastInfo {

front_end/core/sdk/ChildTargetManager.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -269,8 +269,8 @@ export const enum Events {
269269
TARGET_INFO_CHANGED = 'TargetInfoChanged',
270270
}
271271

272-
export type EventTypes = {
273-
[Events.TARGET_CREATED]: Protocol.Target.TargetInfo,
274-
[Events.TARGET_DESTROYED]: Protocol.Target.TargetID,
275-
[Events.TARGET_INFO_CHANGED]: Protocol.Target.TargetInfo,
276-
};
272+
export interface EventTypes {
273+
[Events.TARGET_CREATED]: Protocol.Target.TargetInfo;
274+
[Events.TARGET_DESTROYED]: Protocol.Target.TargetID;
275+
[Events.TARGET_INFO_CHANGED]: Protocol.Target.TargetInfo;
276+
}

front_end/core/sdk/ConsoleModel.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -521,12 +521,12 @@ export interface CommandEvaluatedEvent {
521521
exceptionDetails?: Protocol.Runtime.ExceptionDetails|undefined;
522522
}
523523

524-
export type EventTypes = {
525-
[Events.ConsoleCleared]: void,
526-
[Events.MessageAdded]: ConsoleMessage,
527-
[Events.MessageUpdated]: ConsoleMessage,
528-
[Events.CommandEvaluated]: CommandEvaluatedEvent,
529-
};
524+
export interface EventTypes {
525+
[Events.ConsoleCleared]: void;
526+
[Events.MessageAdded]: ConsoleMessage;
527+
[Events.MessageUpdated]: ConsoleMessage;
528+
[Events.CommandEvaluated]: CommandEvaluatedEvent;
529+
}
530530

531531
export interface AffectedResources {
532532
requestId?: Protocol.Network.RequestId;

front_end/core/sdk/CookieModel.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,6 @@ export const enum Events {
238238
COOKIE_LIST_UPDATED = 'CookieListUpdated',
239239
}
240240

241-
export type EventTypes = {
242-
[Events.COOKIE_LIST_UPDATED]: void,
243-
};
241+
export interface EventTypes {
242+
[Events.COOKIE_LIST_UPDATED]: void;
243+
}

front_end/core/sdk/DOMDebuggerModel.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -271,11 +271,11 @@ export const enum Events {
271271
DOM_BREAKPOINTS_REMOVED = 'DOMBreakpointsRemoved',
272272
}
273273

274-
export type EventTypes = {
275-
[Events.DOM_BREAKPOINT_ADDED]: DOMBreakpoint,
276-
[Events.DOM_BREAKPOINT_TOGGLED]: DOMBreakpoint,
277-
[Events.DOM_BREAKPOINTS_REMOVED]: DOMBreakpoint[],
278-
};
274+
export interface EventTypes {
275+
[Events.DOM_BREAKPOINT_ADDED]: DOMBreakpoint;
276+
[Events.DOM_BREAKPOINT_TOGGLED]: DOMBreakpoint;
277+
[Events.DOM_BREAKPOINTS_REMOVED]: DOMBreakpoint[];
278+
}
279279

280280
const Marker = 'breakpoint-marker';
281281

0 commit comments

Comments
 (0)