From 81f93f42f7dbbd7b777601f75f8bcbf7f2a3a31e Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 14 Nov 2025 10:16:27 +0100 Subject: [PATCH] remove any type usage (#277367) --- eslint.config.js | 4 ---- .../test/common/configurationModels.test.ts | 15 +++++++------- .../test/common/testConfigurationService.ts | 20 +++++++++---------- .../test/browser/telemetryService.test.ts | 4 ++-- .../test/browser/notebookEditorModel.test.ts | 2 +- .../test/common/configurationModels.test.ts | 2 +- .../builtinExtensionsScannerService.ts | 2 +- .../browser/webExtensionsScannerService.ts | 11 +++++----- .../extensionEnablementService.test.ts | 3 ++- .../parts/editor/breadcrumbModel.test.ts | 6 +++--- .../test/browser/workbenchTestServices.ts | 2 +- 11 files changed, 33 insertions(+), 38 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 4f9dd8630c1..eb2bc839305 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -507,7 +507,6 @@ export default tseslint.config( 'src/vs/platform/userDataSync/common/userDataSyncIpc.ts', 'src/vs/platform/userDataSync/common/userDataSyncServiceIpc.ts', 'src/vs/platform/webview/common/webviewManagerService.ts', - 'src/vs/platform/configuration/test/common/testConfigurationService.ts', 'src/vs/platform/instantiation/test/common/instantiationServiceMock.ts', 'src/vs/platform/keybinding/test/common/mockKeybindingService.ts', // Editor @@ -556,7 +555,6 @@ export default tseslint.config( 'src/vs/workbench/api/common/extHostChatSessions.ts', 'src/vs/workbench/api/common/extHostCodeInsets.ts', 'src/vs/workbench/api/common/extHostCommands.ts', - 'src/vs/workbench/api/common/extHostConfiguration.ts', 'src/vs/workbench/api/common/extHostConsoleForwarder.ts', 'src/vs/workbench/api/common/extHostDataChannels.ts', 'src/vs/workbench/api/common/extHostDebugService.ts', @@ -807,8 +805,6 @@ export default tseslint.config( 'src/vs/workbench/services/commands/common/commandService.ts', 'src/vs/workbench/services/configurationResolver/common/configurationResolver.ts', 'src/vs/workbench/services/configurationResolver/common/configurationResolverExpression.ts', - 'src/vs/workbench/services/extensionManagement/browser/builtinExtensionsScannerService.ts', - 'src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.ts', 'src/vs/workbench/services/extensions/common/extensionHostManager.ts', 'src/vs/workbench/services/extensions/common/extensionsRegistry.ts', 'src/vs/workbench/services/extensions/common/lazyPromise.ts', diff --git a/src/vs/platform/configuration/test/common/configurationModels.test.ts b/src/vs/platform/configuration/test/common/configurationModels.test.ts index c6993dfaa07..f3538bb0ac0 100644 --- a/src/vs/platform/configuration/test/common/configurationModels.test.ts +++ b/src/vs/platform/configuration/test/common/configurationModels.test.ts @@ -8,7 +8,7 @@ import { join } from '../../../../base/common/path.js'; import { URI } from '../../../../base/common/uri.js'; import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js'; import { Configuration, ConfigurationChangeEvent, ConfigurationModel, ConfigurationModelParser, mergeChanges } from '../../common/configurationModels.js'; -import { IConfigurationRegistry, Extensions, ConfigurationScope } from '../../common/configurationRegistry.js'; +import { IConfigurationRegistry, Extensions, ConfigurationScope, IConfigurationNode } from '../../common/configurationRegistry.js'; import { NullLogService } from '../../../log/common/log.js'; import { Registry } from '../../../registry/common/platform.js'; import { WorkspaceFolder } from '../../../workspace/common/workspace.js'; @@ -107,7 +107,7 @@ suite('ConfigurationModelParser - Excluded Properties', () => { const configurationRegistry = Registry.as(Extensions.Configuration); - let testConfigurationNodes: any[] = []; + let testConfigurationNodes: IConfigurationNode[] = []; setup(() => reset()); teardown(() => reset()); @@ -393,11 +393,11 @@ suite('ConfigurationModel', () => { testObject.setValue('b.c', 1); - const expected: any = {}; + const expected: Record = {}; expected['a'] = { 'b': 1 }; expected['f'] = 1; expected['b'] = Object.create(null); - expected['b']['c'] = 1; + (expected['b'] as Record)['c'] = 1; assert.deepStrictEqual(testObject.contents, expected); assert.deepStrictEqual(testObject.keys, ['a.b', 'f', 'b.c']); }); @@ -508,8 +508,7 @@ suite('ConfigurationModel', () => { test('get overriding configuration if the value of overriding identifier is not object', () => { const testObject = new ConfigurationModel( { 'a': { 'b': 1 }, 'f': { 'g': 1 } }, [], - // eslint-disable-next-line local/code-no-any-casts - [{ identifiers: ['c'], contents: 'abc' as any, keys: [] }], [], new NullLogService()); + [{ identifiers: ['c'], contents: 'abc' as unknown as Record, keys: [] }], [], new NullLogService()); assert.deepStrictEqual(testObject.override('c').contents, { 'a': { 'b': 1 }, 'f': { 'g': 1 } }); }); @@ -993,7 +992,7 @@ suite('Configuration', () => { }); - function parseConfigurationModel(content: any): ConfigurationModel { + function parseConfigurationModel(content: Record): ConfigurationModel { const parser = new ConfigurationModelParser('test', new NullLogService()); parser.parse(JSON.stringify(content)); return parser.configurationModel; @@ -1602,7 +1601,7 @@ suite('Configuration.Parse', () => { }); -function toConfigurationModel(obj: any): ConfigurationModel { +function toConfigurationModel(obj: Record): ConfigurationModel { const parser = new ConfigurationModelParser('test', new NullLogService()); parser.parse(JSON.stringify(obj)); return parser.configurationModel; diff --git a/src/vs/platform/configuration/test/common/testConfigurationService.ts b/src/vs/platform/configuration/test/common/testConfigurationService.ts index 17e4c818380..86992f7bf14 100644 --- a/src/vs/platform/configuration/test/common/testConfigurationService.ts +++ b/src/vs/platform/configuration/test/common/testConfigurationService.ts @@ -13,21 +13,21 @@ import { Registry } from '../../../registry/common/platform.js'; export class TestConfigurationService implements IConfigurationService { public _serviceBrand: undefined; - private configuration: any; + private configuration: Record; readonly onDidChangeConfigurationEmitter = new Emitter(); readonly onDidChangeConfiguration = this.onDidChangeConfigurationEmitter.event; - constructor(configuration?: any) { + constructor(configuration?: Record) { this.configuration = configuration || Object.create(null); } - private configurationByRoot: TernarySearchTree = TernarySearchTree.forPaths(); + private configurationByRoot: TernarySearchTree> = TernarySearchTree.forPaths>(); public reloadConfiguration(): Promise { - return Promise.resolve(this.getValue()); + return Promise.resolve(this.getValue() as T); } - public getValue(arg1?: any, arg2?: any): any { + public getValue(arg1?: string | IConfigurationOverrides, arg2?: IConfigurationOverrides): T | undefined { let configuration; const overrides = isConfigurationOverrides(arg1) ? arg1 : isConfigurationOverrides(arg2) ? arg2 : undefined; if (overrides) { @@ -37,16 +37,16 @@ export class TestConfigurationService implements IConfigurationService { } configuration = configuration ? configuration : this.configuration; if (arg1 && typeof arg1 === 'string') { - return configuration[arg1] ?? getConfigurationValue(configuration, arg1); + return (configuration[arg1] ?? getConfigurationValue(configuration, arg1)) as T; } - return configuration; + return configuration as T; } - public updateValue(key: string, value: any): Promise { + public updateValue(key: string, value: unknown): Promise { return Promise.resolve(undefined); } - public setUserConfiguration(key: any, value: any, root?: URI): Promise { + public setUserConfiguration(key: string, value: unknown, root?: URI): Promise { if (root) { const configForRoot = this.configurationByRoot.get(root.fsPath) || Object.create(null); configForRoot[key] = value; @@ -64,7 +64,7 @@ export class TestConfigurationService implements IConfigurationService { } public inspect(key: string, overrides?: IConfigurationOverrides): IConfigurationValue { - const value = this.getValue(key, overrides); + const value = this.getValue(key, overrides) as T; return { value, diff --git a/src/vs/platform/telemetry/test/browser/telemetryService.test.ts b/src/vs/platform/telemetry/test/browser/telemetryService.test.ts index 0db5a78d02d..bf9522a7616 100644 --- a/src/vs/platform/telemetry/test/browser/telemetryService.test.ts +++ b/src/vs/platform/telemetry/test/browser/telemetryService.test.ts @@ -725,8 +725,8 @@ suite('TelemetryService', () => { appenders: [testAppender] }, new class extends TestConfigurationService { override onDidChangeConfiguration = emitter.event; - override getValue() { - return telemetryLevel; + override getValue(): T { + return telemetryLevel as T; } }(), TestProductService); diff --git a/src/vs/workbench/contrib/notebook/test/browser/notebookEditorModel.test.ts b/src/vs/workbench/contrib/notebook/test/browser/notebookEditorModel.test.ts index 075a15c86c9..9274063cef1 100644 --- a/src/vs/workbench/contrib/notebook/test/browser/notebookEditorModel.test.ts +++ b/src/vs/workbench/contrib/notebook/test/browser/notebookEditorModel.test.ts @@ -339,7 +339,7 @@ function mockNotebookService(notebook: NotebookTextModel, notebookSerializer: Pr override async createNotebookTextDocumentSnapshot(uri: URI, context: SnapshotContext, token: CancellationToken): Promise { const info = await this.withNotebookDataProvider(notebook.viewType); const serializer = info.serializer; - const outputSizeLimit = configurationService.getValue(NotebookSetting.outputBackupSizeLimit) ?? 1024; + const outputSizeLimit = configurationService.getValue(NotebookSetting.outputBackupSizeLimit) ?? 1024; const data: NotebookData = notebook.createSnapshot({ context: context, outputSizeLimit: outputSizeLimit, transientOptions: serializer.options }); const bytes = await serializer.notebookToData(data); diff --git a/src/vs/workbench/services/configuration/test/common/configurationModels.test.ts b/src/vs/workbench/services/configuration/test/common/configurationModels.test.ts index e2af59e33aa..8c451929294 100644 --- a/src/vs/workbench/services/configuration/test/common/configurationModels.test.ts +++ b/src/vs/workbench/services/configuration/test/common/configurationModels.test.ts @@ -211,7 +211,7 @@ suite('Workspace Configuration', () => { }); -function toConfigurationModel(obj: any): ConfigurationModel { +function toConfigurationModel(obj: Record): ConfigurationModel { const parser = new ConfigurationModelParser('test', new NullLogService()); parser.parse(JSON.stringify(obj)); return parser.configurationModel; diff --git a/src/vs/workbench/services/extensionManagement/browser/builtinExtensionsScannerService.ts b/src/vs/workbench/services/extensionManagement/browser/builtinExtensionsScannerService.ts index de60ee7d81a..2a674e63344 100644 --- a/src/vs/workbench/services/extensionManagement/browser/builtinExtensionsScannerService.ts +++ b/src/vs/workbench/services/extensionManagement/browser/builtinExtensionsScannerService.ts @@ -20,7 +20,7 @@ import { mainWindow } from '../../../../base/browser/window.js'; interface IBundledExtension { extensionPath: string; packageJSON: IExtensionManifest; - packageNLS?: any; + packageNLS?: ITranslations; readmePath?: string; changelogPath?: string; } diff --git a/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.ts b/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.ts index 6ab9b4fdb0d..1ef848409f3 100644 --- a/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.ts +++ b/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.ts @@ -54,14 +54,13 @@ function isGalleryExtensionInfo(obj: unknown): obj is GalleryExtensionInfo { && (galleryExtensionInfo.migrateStorageFrom === undefined || typeof galleryExtensionInfo.migrateStorageFrom === 'string'); } -function isUriComponents(thing: unknown): thing is UriComponents { - if (!thing) { +function isUriComponents(obj: unknown): obj is UriComponents { + if (!obj) { return false; } - // eslint-disable-next-line local/code-no-any-casts - return isString((thing).path) && - // eslint-disable-next-line local/code-no-any-casts - isString((thing).scheme); + const thing = obj as UriComponents | undefined; + return typeof thing?.path === 'string' && + typeof thing?.scheme === 'string'; } interface IStoredWebExtension { diff --git a/src/vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test.ts b/src/vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test.ts index bddf2b55a64..8a973961f2b 100644 --- a/src/vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test.ts +++ b/src/vs/workbench/services/extensionManagement/test/browser/extensionEnablementService.test.ts @@ -41,6 +41,7 @@ import { IFileService } from '../../../../../platform/files/common/files.js'; import { FileService } from '../../../../../platform/files/common/fileService.js'; import { IProductService } from '../../../../../platform/product/common/productService.js'; import { AllowedExtensionsService } from '../../../../../platform/extensionManagement/common/allowedExtensionsService.js'; +import { IStringDictionary } from '../../../../../base/common/collections.js'; function createStorageService(instantiationService: TestInstantiationService, disposableStore: DisposableStore): IStorageService { let service = instantiationService.get(IStorageService); @@ -1241,7 +1242,7 @@ function aLocalExtension(id: string, contributes?: IExtensionContributions, type return aLocalExtension2(id, contributes ? { contributes } : {}, isUndefinedOrNull(type) ? {} : { type }); } -function aLocalExtension2(id: string, manifest: Partial = {}, properties: any = {}): ILocalExtension { +function aLocalExtension2(id: string, manifest: Partial = {}, properties: IStringDictionary = {}): ILocalExtension { const [publisher, name] = id.split('.'); manifest = { name, publisher, ...manifest }; properties = { diff --git a/src/vs/workbench/test/browser/parts/editor/breadcrumbModel.test.ts b/src/vs/workbench/test/browser/parts/editor/breadcrumbModel.test.ts index 8f672e07764..14d2d9512ef 100644 --- a/src/vs/workbench/test/browser/parts/editor/breadcrumbModel.test.ts +++ b/src/vs/workbench/test/browser/parts/editor/breadcrumbModel.test.ts @@ -20,12 +20,12 @@ suite('Breadcrumb Model', function () { let model: BreadcrumbsModel; const workspaceService = new TestContextService(new Workspace('ffff', [new WorkspaceFolder({ uri: URI.parse('foo:/bar/baz/ws'), name: 'ws', index: 0 })])); const configService = new class extends TestConfigurationService { - override getValue(...args: any[]) { + override getValue(...args: any[]): T | undefined { if (args[0] === 'breadcrumbs.filePath') { - return 'on'; + return 'on' as T; } if (args[0] === 'breadcrumbs.symbolPath') { - return 'on'; + return 'on' as T; } return super.getValue(...args); } diff --git a/src/vs/workbench/test/browser/workbenchTestServices.ts b/src/vs/workbench/test/browser/workbenchTestServices.ts index b2cc3ecc7ef..7d3841873cc 100644 --- a/src/vs/workbench/test/browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/browser/workbenchTestServices.ts @@ -1312,7 +1312,7 @@ export class TestTextResourceConfigurationService implements ITextResourceConfig getValue(resource: URI, arg2?: any, arg3?: any): T { const position: IPosition | null = EditorPosition.isIPosition(arg2) ? arg2 : null; const section: string | undefined = position ? (typeof arg3 === 'string' ? arg3 : undefined) : (typeof arg2 === 'string' ? arg2 : undefined); - return this.configurationService.getValue(section, { resource }); + return this.configurationService.getValue(section, { resource }) as T; } inspect(resource: URI | undefined, position: IPosition | null, section: string): IConfigurationValue> {