debt - reduce use of any type (#273692)

This commit is contained in:
Benjamin Pasero
2025-10-28 07:35:39 +01:00
committed by GitHub
parent 1be558e4d5
commit fd49ad959b
19 changed files with 27 additions and 45 deletions

View File

@@ -462,9 +462,6 @@ export default tseslint.config(
// Workbench
'src/vs/workbench/api/browser/mainThreadChatSessions.ts',
'src/vs/workbench/api/browser/mainThreadTerminalService.ts',
'src/vs/workbench/api/browser/mainThreadTreeViews.ts',
'src/vs/workbench/api/browser/statusBarExtensionPoint.ts',
'src/vs/workbench/api/browser/viewsExtensionPoint.ts',
'src/vs/workbench/api/common/configurationExtensionPoint.ts',
'src/vs/workbench/api/common/extHost.api.impl.ts',
'src/vs/workbench/api/common/extHost.protocol.ts',
@@ -488,7 +485,6 @@ export default tseslint.config(
'src/vs/workbench/api/common/extHostMessageService.ts',
'src/vs/workbench/api/common/extHostNotebookDocument.ts',
'src/vs/workbench/api/common/extHostNotebookDocumentSaveParticipant.ts',
'src/vs/workbench/api/common/extHostNotebookKernels.ts',
'src/vs/workbench/api/common/extHostQuickOpen.ts',
'src/vs/workbench/api/common/extHostRequireInterceptor.ts',
'src/vs/workbench/api/common/extHostRpcService.ts',
@@ -580,7 +576,6 @@ export default tseslint.config(
'src/vs/workbench/contrib/codeEditor/electron-browser/selectionClipboard.ts',
'src/vs/workbench/contrib/commands/common/commands.contribution.ts',
'src/vs/workbench/contrib/comments/browser/commentNode.ts',
'src/vs/workbench/contrib/comments/browser/commentThreadBody.ts',
'src/vs/workbench/contrib/comments/browser/commentsAccessibleView.ts',
'src/vs/workbench/contrib/comments/browser/commentsTreeViewer.ts',
'src/vs/workbench/contrib/comments/browser/commentsView.ts',
@@ -677,10 +672,6 @@ export default tseslint.config(
'src/vs/workbench/contrib/notebook/common/notebookEditorModelResolverServiceImpl.ts',
'src/vs/workbench/contrib/notebook/common/notebookRange.ts',
'src/vs/workbench/contrib/notebook/test/browser/testNotebookEditor.ts',
'src/vs/workbench/contrib/outline/browser/outlinePane.ts',
'src/vs/workbench/contrib/outline/browser/outlineViewState.ts',
'src/vs/workbench/contrib/output/browser/outputView.ts',
'src/vs/workbench/contrib/output/common/outputChannelModel.ts',
'src/vs/workbench/contrib/performance/electron-browser/startupProfiler.ts',
'src/vs/workbench/contrib/preferences/browser/keybindingsEditor.ts',
'src/vs/workbench/contrib/preferences/browser/preferences.contribution.ts',
@@ -749,7 +740,6 @@ export default tseslint.config(
'src/vs/workbench/contrib/testing/common/storedValue.ts',
'src/vs/workbench/contrib/testing/common/testItemCollection.ts',
'src/vs/workbench/contrib/testing/test/browser/testObjectTree.ts',
'src/vs/workbench/contrib/themes/browser/themes.contribution.ts',
'src/vs/workbench/contrib/timeline/browser/timelinePane.ts',
'src/vs/workbench/contrib/typeHierarchy/browser/typeHierarchy.contribution.ts',
'src/vs/workbench/contrib/typeHierarchy/common/typeHierarchy.ts',
@@ -768,7 +758,6 @@ export default tseslint.config(
'src/vs/workbench/contrib/welcomeViews/common/newFile.contribution.ts',
'src/vs/workbench/contrib/welcomeWalkthrough/browser/walkThroughPart.ts',
'src/vs/workbench/services/accounts/common/defaultAccount.ts',
'src/vs/workbench/services/actions/common/menusExtensionPoint.ts',
'src/vs/workbench/services/assignment/common/assignmentFilters.ts',
'src/vs/workbench/services/authentication/common/authentication.ts',
'src/vs/workbench/services/authentication/test/browser/authenticationQueryServiceMocks.ts',
@@ -782,7 +771,6 @@ export default tseslint.config(
'src/vs/workbench/services/configurationResolver/common/configurationResolver.ts',
'src/vs/workbench/services/configurationResolver/common/configurationResolverExpression.ts',
'src/vs/workbench/services/configurationResolver/common/variableResolver.ts',
'src/vs/workbench/services/driver/browser/driver.ts',
'src/vs/workbench/services/extensionManagement/browser/builtinExtensionsScannerService.ts',
'src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.ts',
'src/vs/workbench/services/extensions/common/extHostCustomers.ts',
@@ -804,13 +792,11 @@ export default tseslint.config(
'src/vs/workbench/services/keybinding/common/keymapInfo.ts',
'src/vs/workbench/services/language/common/languageService.ts',
'src/vs/workbench/services/languageDetection/browser/languageDetectionWorker.protocol.ts',
'src/vs/workbench/services/languageStatus/common/languageStatusService.ts',
'src/vs/workbench/services/outline/browser/outline.ts',
'src/vs/workbench/services/outline/browser/outlineService.ts',
'src/vs/workbench/services/preferences/common/preferences.ts',
'src/vs/workbench/services/preferences/common/preferencesModels.ts',
'src/vs/workbench/services/preferences/common/preferencesValidation.ts',
'src/vs/workbench/services/remote/browser/remoteAgentService.ts',
'src/vs/workbench/services/remote/common/tunnelModel.ts',
'src/vs/workbench/services/search/common/localFileSearchWorkerTypes.ts',
'src/vs/workbench/services/search/common/replace.ts',
@@ -822,7 +808,6 @@ export default tseslint.config(
'src/vs/workbench/services/search/node/rawSearchService.ts',
'src/vs/workbench/services/search/node/ripgrepTextSearchEngine.ts',
'src/vs/workbench/services/search/worker/localFileSearch.ts',
'src/vs/workbench/services/telemetry/browser/workbenchCommonProperties.ts',
'src/vs/workbench/services/terminal/common/embedderTerminalService.ts',
'src/vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateTokenizationWorker.worker.ts',
'src/vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateWorkerHost.ts',
@@ -847,13 +832,10 @@ export default tseslint.config(
'src/vs/workbench/workbench.web.main.internal.ts',
'src/vs/workbench/workbench.web.main.ts',
// Server
'src/vs/server/node/extensionHostConnection.ts',
'src/vs/server/node/remoteAgentEnvironmentImpl.ts',
'src/vs/server/node/remoteExtensionHostAgentServer.ts',
'src/vs/server/node/remoteExtensionsScanner.ts',
'src/vs/server/node/remoteTerminalChannel.ts',
'src/vs/server/node/server.cli.ts',
'src/vs/server/node/serverConnectionToken.ts',
// Tests
'**/*.test.ts',
'**/*.integrationTest.ts'

View File

@@ -237,7 +237,7 @@ export class ExtensionHostConnection extends Disposable {
public async start(startParams: IRemoteExtensionHostStartParams): Promise<void> {
try {
let execArgv: string[] = process.execArgv ? process.execArgv.filter(a => !/^--inspect(-brk)?=/.test(a)) : [];
// eslint-disable-next-line local/code-no-any-casts
// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any
if (startParams.port && !(<any>process).pkg) {
execArgv = [
`--inspect${startParams.break ? '-brk' : ''}=${startParams.port}`,

View File

@@ -466,7 +466,7 @@ function asExtensionIdOrVSIX(inputs: string[] | undefined) {
return inputs?.map(input => /\.vsix$/i.test(input) ? pathToURI(input).href : input);
}
function fatal(message: string, err: any): void {
function fatal(message: string, err: unknown): void {
console.error('Unable to connect to VS Code server: ' + message);
console.error(err);
process.exit(1);

View File

@@ -24,7 +24,7 @@ export const enum ServerConnectionTokenType {
export class NoneServerConnectionToken {
public readonly type = ServerConnectionTokenType.None;
public validate(connectionToken: any): boolean {
public validate(connectionToken: unknown): boolean {
return true;
}
}
@@ -35,7 +35,7 @@ export class MandatoryServerConnectionToken {
constructor(public readonly value: string) {
}
public validate(connectionToken: any): boolean {
public validate(connectionToken: unknown): boolean {
return (connectionToken === this.value);
}
}

View File

@@ -375,7 +375,7 @@ class TreeViewDataProvider implements ITreeViewDataProvider {
const properties = distinct([...Object.keys(current instanceof ResolvableTreeItem ? current.asTreeItem() : current),
...Object.keys(treeItem)]);
for (const property of properties) {
(current as { [key: string]: any })[property] = (treeItem as { [key: string]: any })[property];
(current as unknown as { [key: string]: unknown })[property] = (treeItem as unknown as { [key: string]: unknown })[property];
}
if (current instanceof ResolvableTreeItem) {
current.resetResolve();

View File

@@ -172,7 +172,7 @@ registerSingleton(IExtensionStatusBarItemService, ExtensionStatusBarItemService,
type IUserFriendlyStatusItemEntry = TypeFromJsonSchema<typeof statusBarItemSchema>;
function isUserFriendlyStatusItemEntry(candidate: any): candidate is IUserFriendlyStatusItemEntry {
function isUserFriendlyStatusItemEntry(candidate: unknown): candidate is IUserFriendlyStatusItemEntry {
const obj = candidate as IUserFriendlyStatusItemEntry;
return (typeof obj.id === 'string' && obj.id.length > 0)
&& typeof obj.name === 'string'

View File

@@ -542,7 +542,7 @@ class ViewsExtensionHandler implements IWorkbenchContribution {
extensionId: extension.description.identifier,
originalContainerId: key,
group: item.group,
// eslint-disable-next-line local/code-no-any-casts
// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any
remoteAuthority: item.remoteName || (<any>item).remoteAuthority, // TODO@roblou - delete after remote extensions are updated
virtualWorkspace: item.virtualWorkspace,
hideByDefault: initialVisibility === InitialVisibility.Hidden,
@@ -594,9 +594,9 @@ class ViewsExtensionHandler implements IWorkbenchContribution {
}
}
private convertInitialVisibility(value: any): InitialVisibility | undefined {
if (Object.values(InitialVisibility).includes(value)) {
return value;
private convertInitialVisibility(value: string | undefined): InitialVisibility | undefined {
if (Object.values(InitialVisibility).includes(value as InitialVisibility)) {
return value as InitialVisibility;
}
return undefined;
}

View File

@@ -497,7 +497,7 @@ export class ExtHostNotebookKernels implements ExtHostNotebookKernelsShape {
}
}
$acceptKernelMessageFromRenderer(handle: number, editorId: string, message: any): void {
$acceptKernelMessageFromRenderer(handle: number, editorId: string, message: unknown): void {
const obj = this._kernelData.get(handle);
if (!obj) {
// extension can dispose kernels in the meantime

View File

@@ -23,7 +23,7 @@ import { LayoutableEditor } from './simpleCommentEditor.js';
export class CommentThreadBody<T extends IRange | ICellRange = IRange> extends Disposable {
private _commentsElement!: HTMLElement;
private _commentElements: CommentNode<T>[] = [];
private _resizeObserver: any;
private _resizeObserver: MutationObserver | null = null;
private _focusedComment: number | undefined = undefined;
private _onDidResize = new Emitter<dom.Dimension>();
onDidResize = this._onDidResize.event;

View File

@@ -71,7 +71,7 @@ export class OutlinePane extends ViewPane implements IOutlinePane {
private _message!: HTMLDivElement;
private _progressBar!: ProgressBar;
private _treeContainer!: HTMLElement;
private _tree?: WorkbenchDataTree<IOutline<any> | undefined, any, FuzzyScore>;
private _tree?: WorkbenchDataTree<IOutline<unknown> | undefined, unknown, FuzzyScore>;
private _treeDimensions?: dom.Dimension;
private _treeStates = new LRUCache<string, IAbstractTreeViewState>(10);
@@ -253,7 +253,7 @@ export class OutlinePane extends ViewPane implements IOutlinePane {
const sorter = new OutlineTreeSorter(newOutline.config.comparator, this._outlineViewState.sortBy);
const tree = this._instantiationService.createInstance(
WorkbenchDataTree<IOutline<any> | undefined, any, FuzzyScore>,
WorkbenchDataTree<IOutline<unknown> | undefined, unknown, FuzzyScore>,
'OutlinePane',
this._treeContainer,
newOutline.config.delegate,

View File

@@ -66,7 +66,7 @@ export class OutlineViewState implements IOutlineViewState {
if (!raw) {
return;
}
let data: any;
let data;
try {
data = JSON.parse(raw);
} catch (e) {

View File

@@ -274,12 +274,12 @@ export class OutputEditor extends AbstractTextResourceEditor {
ambiguousCharacters: false,
};
const outputConfig = this.configurationService.getValue<any>('[Log]');
const outputConfig = this.configurationService.getValue<{ 'editor.minimap.enabled'?: boolean; 'editor.wordWrap'?: 'off' | 'on' | 'wordWrapColumn' | 'bounded' }>('[Log]');
if (outputConfig) {
if (outputConfig['editor.minimap.enabled']) {
options.minimap = { enabled: true };
}
if ('editor.wordWrap' in outputConfig) {
if (outputConfig['editor.wordWrap']) {
options.wordWrap = outputConfig['editor.wordWrap'];
}
}

View File

@@ -683,7 +683,7 @@ export class FileOutputChannelModel extends AbstractFileOutputChannelModel imple
}
override update(mode: OutputChannelUpdateMode, till: number | undefined, immediate: boolean): void {
const loadModelPromise: Promise<any> = this.loadModelPromise ? this.loadModelPromise : Promise.resolve();
const loadModelPromise = this.loadModelPromise ? this.loadModelPromise : Promise.resolve();
loadModelPromise.then(() => {
if (mode === OutputChannelUpdateMode.Clear || mode === OutputChannelUpdateMode.Replace) {
if (isNumber(till)) {
@@ -729,7 +729,7 @@ export class MultiFileOutputChannelModel extends AbstractFileOutputChannelModel
}
override clear(): void {
const loadModelPromise: Promise<any> = this.loadModelPromise ? this.loadModelPromise : Promise.resolve();
const loadModelPromise = this.loadModelPromise ? this.loadModelPromise : Promise.resolve();
loadModelPromise.then(() => {
this.multifileOutput.resetToEnd();
this.doUpdate(OutputChannelUpdateMode.Clear, true);

View File

@@ -293,7 +293,7 @@ interface InstalledThemesPickerOptions {
class InstalledThemesPicker {
constructor(
private readonly options: InstalledThemesPickerOptions,
private readonly setTheme: (theme: IWorkbenchTheme | undefined, settingsTarget: ThemeSettingTarget) => Promise<any>,
private readonly setTheme: (theme: IWorkbenchTheme | undefined, settingsTarget: ThemeSettingTarget) => Promise<unknown>,
private readonly getMarketplaceColorThemes: (publisher: string, name: string, version: string) => Promise<IWorkbenchTheme[]>,
@IQuickInputService private readonly quickInputService: IQuickInputService,
@IExtensionGalleryService private readonly extensionGalleryService: IExtensionGalleryService,
@@ -611,7 +611,7 @@ interface ThemeItem extends IQuickPickItem {
}
function isItem(i: QuickPickInput<ThemeItem>): i is ThemeItem {
// eslint-disable-next-line local/code-no-any-casts
// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any
return (<any>i)['type'] !== 'separator';
}

View File

@@ -824,7 +824,7 @@ export const commandsExtensionPoint = ExtensionsRegistry.registerExtensionPoint<
commandsExtensionPoint.setHandler(extensions => {
function handleCommand(userFriendlyCommand: schema.IUserFriendlyCommand, extension: IExtensionPointUser<any>) {
function handleCommand(userFriendlyCommand: schema.IUserFriendlyCommand, extension: IExtensionPointUser<unknown>) {
if (!schema.isValidCommand(userFriendlyCommand, extension.collector)) {
return;

View File

@@ -190,7 +190,7 @@ export class BrowserWindowDriver implements IWindowDriver {
throw new Error(`Terminal not found: ${selector}`);
}
// eslint-disable-next-line local/code-no-any-casts
// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any
const xterm = (element as any).xterm;
if (!xterm) {
@@ -212,7 +212,7 @@ export class BrowserWindowDriver implements IWindowDriver {
throw new Error(`Element not found: ${selector}`);
}
// eslint-disable-next-line local/code-no-any-casts
// eslint-disable-next-line local/code-no-any-casts, @typescript-eslint/no-explicit-any
const xterm = (element as any).xterm as (XtermTerminal | undefined);
if (!xterm) {

View File

@@ -53,7 +53,7 @@ class LanguageStatusServiceImpl implements ILanguageStatusService {
private readonly _provider = new LanguageFeatureRegistry<ILanguageStatus>();
readonly onDidChange: Event<any> = this._provider.onDidChange;
readonly onDidChange = Event.map(this._provider.onDidChange, () => undefined);
addStatus(status: ILanguageStatus): IDisposable {
return this._provider.register(status.selector, status);

View File

@@ -51,7 +51,7 @@ class RemoteConnectionFailureNotificationContribution implements IWorkbenchContr
});
}
private async _presentConnectionError(err: any): Promise<void> {
private async _presentConnectionError(err: Error): Promise<void> {
await this._dialogService.prompt({
type: Severity.Error,
message: nls.localize('connectionError', "An unexpected error occurred that requires a reload of this page."),

View File

@@ -28,7 +28,7 @@ export function resolveWorkbenchCommonProperties(
remoteAuthority?: string,
productIdentifier?: string,
removeMachineId?: boolean,
resolveAdditionalProperties?: () => { [key: string]: any }
resolveAdditionalProperties?: () => { [key: string]: unknown }
): ICommonProperties {
const result: ICommonProperties = Object.create(null);
const firstSessionDate = storageService.get(firstSessionDateStorageKey, StorageScope.APPLICATION)!;