From ad515c5be9edcfa02d96bc81135cd2582092c8d0 Mon Sep 17 00:00:00 2001 From: Andreas Svanberg <andreass@dsv.su.se> Date: Fri, 11 Apr 2025 00:53:38 +0200 Subject: [PATCH] Suppress eslint explicit any warnings required for the advanced type trickery to work. At the call site the types are correct, it is just the type signatures that require any. --- frontend/src/hooks/i18n.ts | 6 +++--- frontend/src/lib/messages.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/src/hooks/i18n.ts b/frontend/src/hooks/i18n.ts index 704d5f9..e2f4606 100644 --- a/frontend/src/hooks/i18n.ts +++ b/frontend/src/hooks/i18n.ts @@ -6,8 +6,8 @@ type MessageType = typeof messages; type MessageKeys = keyof MessageType; type MessageParams<T extends MessageKeys> = MessageType[T]["en"] extends ( - ...args: any -) => any + ...args: any // eslint-disable-line @typescript-eslint/no-explicit-any +) => any // eslint-disable-line @typescript-eslint/no-explicit-any ? Parameters<MessageType[T]["en"]> : []; @@ -19,7 +19,7 @@ export function useI18n() { ...args: MessageParams<T> ): string { const message = messages[key][lang] ?? messages[key]["en"]; - // @ts-ignore + // @ts-expect-error see https://stackoverflow.com/a/75086839 return typeof message === "function" ? message(...args) : message; }; } diff --git a/frontend/src/lib/messages.ts b/frontend/src/lib/messages.ts index 90340c6..a821afc 100644 --- a/frontend/src/lib/messages.ts +++ b/frontend/src/lib/messages.ts @@ -19,5 +19,5 @@ export const messages = { }, } as const satisfies Record< string, - AllLanguages<string | ((...args: any) => string)> + AllLanguages<string> | AllLanguages<(...args: any) => string> // eslint-disable-line @typescript-eslint/no-explicit-any >;