From 28327459e4a94eff89539fd002aa5f8bc5ba34b7 Mon Sep 17 00:00:00 2001 From: DS Boyce <260543580+ds-boyce@users.noreply.github.com> Date: Tue, 28 Apr 2026 02:59:04 -0700 Subject: [PATCH] Enable @typescript-eslint/no-explicit-any (#10383) --- eslint-suppressions.json | 747 +++++++++++++++++++++++++++++++++++++++ eslint.config.mjs | 2 +- 2 files changed, 748 insertions(+), 1 deletion(-) create mode 100644 eslint-suppressions.json diff --git a/eslint-suppressions.json b/eslint-suppressions.json new file mode 100644 index 0000000000..f192be24e6 --- /dev/null +++ b/eslint-suppressions.json @@ -0,0 +1,747 @@ +{ + "src/alf/util/flatten.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/analytics/PassiveAnalytics.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/analytics/metadata.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/analytics/metrics/client.test.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/analytics/metrics/client.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 5 + } + }, + "src/analytics/metrics/types.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/Button.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/Composer/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/Dialog/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/Dialog/index.web.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 4 + } + }, + "src/components/DraggableList/index.web.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/FeedCard.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/FocusScope/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/InternationalPhoneCodeSelect.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/Layout/const.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/Lists.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/Menu/index.web.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/Menu/types.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/Portal.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/Post/Embed/ImageEmbed.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/Post/Embed/VideoEmbed/VideoEmbedInner/web-controls/utils.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/PostControls/BookmarkButton.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/ProfileHoverCard/index.web.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/Select/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 4 + } + }, + "src/components/Select/index.web.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/Select/types.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/components/StarterPack/ProfileStarterPacks.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/StarterPack/Wizard/WizardEditListDialog.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/dialogs/DeviceLocationRequestDialog.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/dialogs/EmailDialog/components/ResendEmailText.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/dialogs/GifSelect.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/dialogs/LanguageSelectDialog.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/dialogs/MutedWords.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/dialogs/PostInteractionSettingsDialog.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/dialogs/lists/CreateOrEditListDialog.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/forms/DateField/index.web.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/forms/SegmentedControl.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/forms/ToggleButton.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/hooks/useFollowMethods.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/images/AutoSizedImage.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/components/images/Gallery/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 5 + } + }, + "src/components/images/Gallery/useKeyboardHandlers.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 6 + } + }, + "src/components/images/Gallery/usePointerHandlers.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 6 + } + }, + "src/components/images/ImageLayoutGrid.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/images/ImageLayoutGridItem.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/components/moderation/ReportDialog/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/features/liveNow/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/geolocation/service.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/lib/ScrollContext.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/lib/api/index.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 5 + } + }, + "src/lib/async/retry.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/lib/async/until.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/lib/broadcast/stub.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/functions.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 6 + } + }, + "src/lib/getUserDisplayName.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/hooks/useAccountSwitcher.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/hooks/useCleanError.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/hooks/useNonReactiveCallback.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/hooks/useOTAUpdates.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/lib/hooks/useRequireEmailVerification.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/lib/hooks/useToggleMutationQueue.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/lib/hooks/useWebScrollRestoration.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/lib/international-telephone-codes.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/media/manip.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/media/save-image.ios.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/media/save-image.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/merge-refs.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/react-query.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/routes/router.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/routes/types.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/lib/strings/errors.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/locale/i18n.web.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/platform/polyfills.web.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Bookmarks/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Deactivated.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Login/ChooseAccountForm.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Login/ForgotPasswordForm.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Login/LoginForm.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Login/SetNewPasswordForm.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Moderation/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/screens/ModerationInteractionSettings/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Onboarding/StepFinished/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Onboarding/StepInterests/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/PostThread/components/ThreadItemAnchorFollowButton.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/screens/PostThread/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/screens/Profile/Header/EditProfileDialog.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/screens/Profile/Header/ProfileHeaderLabeler.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/screens/Profile/Header/Shell.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Profile/Sections/Feed.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Profile/components/GermButton.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Settings/FindContactsSettings.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Settings/components/ChangePasswordDialog.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/screens/Settings/components/DeactivateAccountDialog.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/Settings/components/DeleteAccountDialog.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/screens/Signup/StepInfo/Policies.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/screens/SignupQueued.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/state/cache/types.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/state/feed-feedback.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/state/messages/convo/agent.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/state/messages/events/agent.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/state/persisted/index.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/state/persisted/index.web.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/state/persisted/util.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/state/queries/notifications/feed.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/state/queries/nuxs/definitions.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/state/queries/pinned-post.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/state/queries/post-feed.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/state/queries/postgate/index.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/state/queries/search-posts.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/state/queries/threadgate/index.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/state/queries/util.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/state/session/agent.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/state/shell/progress-guide.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/storage/index.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 8 + } + }, + "src/view/com/composer/Composer.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/composer/drafts/state/queries.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/composer/photos/OpenCameraBtn.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/com/feeds/ComposerPrompt.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/feeds/ProfileFeedgens.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/view/com/lightbox/ImageViewing/@types/index.ts": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/com/lightbox/ImageViewing/index.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/com/lists/ListMembers.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/view/com/lists/MyLists.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/lists/ProfileLists.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/view/com/notifications/NotificationFeed.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/notifications/NotificationFeedItem.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/view/com/pager/Pager.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 4 + } + }, + "src/view/com/pager/PagerWithHeader.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 3 + } + }, + "src/view/com/pager/PagerWithHeader.web.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/pager/TabBar.web.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/com/posts/FeedShutdownMsg.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/posts/PostFeed.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/com/posts/PostFeedErrorMessage.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/com/profile/ProfileMenu.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 6 + } + }, + "src/view/com/testing/TestCtrls.e2e.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/util/EmptyState.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/com/util/ErrorBoundary.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/util/EventStopper.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/com/util/Link.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/util/List.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/util/List.web.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 14 + } + }, + "src/view/com/util/MainScrollProvider.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 2 + } + }, + "src/view/com/util/ViewSelector.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 6 + } + }, + "src/view/com/util/Views.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/com/util/fab/FABInner.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/screens/Debug.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/screens/DebugMod.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + }, + "src/view/shell/createNativeStackNavigatorWithAuth.tsx": { + "@typescript-eslint/no-explicit-any": { + "count": 1 + } + } +} \ No newline at end of file diff --git a/eslint.config.mjs b/eslint.config.mjs index 8e7bb941a8..6293ddfd02 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -229,7 +229,7 @@ export default defineConfig( * v8 `warn` ones are probably worth fixing. `off` ones are a bit too * nit-picky */ - '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-explicit-any': 'error', '@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/no-empty-object-type': 'off', '@typescript-eslint/no-unsafe-function-type': 'off',