From 76f4824d2b447cbb80e5476289448898a2b55b0d Mon Sep 17 00:00:00 2001
From: dap <15891557205@163.com>
Date: 星期四, 28 十一月 2024 21:07:23 +0800
Subject: [PATCH] feat: i18n $t方法支持ts类型提示

---
 src/types/module.d.ts |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/src/types/module.d.ts b/src/types/module.d.ts
index bc2f16b..9942657 100644
--- a/src/types/module.d.ts
+++ b/src/types/module.d.ts
@@ -8,6 +8,7 @@
 import { handleTree, addDateRange, selectDictLabel, selectDictLabels, parseTime } from '@/utils/ruoyi';
 import { getConfigKey, updateConfigByKey } from '@/api/system/config';
 import { download as rd } from '@/utils/request';
+import type { LanguageType } from '@/lang';
 
 export {};
 
@@ -20,6 +21,11 @@
     $auth: typeof auth;
     $cache: typeof cache;
     animate: typeof animate;
+    /**
+     * i18n $t鏂规硶鏀寔ts绫诲瀷鎻愮ず
+     * @param key i18n key
+     */
+    $t(key: ObjKeysToUnion<LanguageType>): string;
 
     useDict: typeof useDict;
     addDateRange: typeof addDateRange;
@@ -33,6 +39,16 @@
   }
 }
 
+/**
+ * { a: 1, b: { ba: { baa: 1, bab: 2 }, bb: 2} } ---> a | b.ba.baa | b.ba.bab | b.bb
+ * https://juejin.cn/post/7280062870670606397
+ */
+export type ObjKeysToUnion<T, P extends string = ''> = T extends object
+  ? {
+      [K in keyof T]: ObjKeysToUnion<T[K], P extends '' ? `${K & string}` : `${P}.${K & string}`>;
+    }[keyof T]
+  : P;
+
 declare module 'vform3-builds' {
   const content: any;
   export = content;

--
Gitblit v1.9.3