From 334ee0d40d830188401d76f60cefa2695bc2fba5 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期四, 28 十一月 2024 21:28:28 +0800 Subject: [PATCH] !162 feat: i18n $t方法支持ts类型提示 Merge pull request !162 from 玲娜贝er/dev --- src/types/module.d.ts | 43 +++++++++++++++++++++++++++++++++---------- 1 files changed, 33 insertions(+), 10 deletions(-) diff --git a/src/types/module.d.ts b/src/types/module.d.ts index 987c349..9942657 100644 --- a/src/types/module.d.ts +++ b/src/types/module.d.ts @@ -1,13 +1,16 @@ -import type modal from '@/plugins/modal'; -import type tab from '@/plugins/tab'; -import type download from '@/plugins/download'; -import type auth from '@/plugins/auth'; -import type cache from '@/plugins/cache'; -import type animate from '@/animate'; -import type { useDict } from '@/utils/dict'; -import type { addDateRange, handleTree, selectDictLabel, selectDictLabels, parseTime } from '@/utils/ruoyi'; -import type { getConfigKey, updateConfigByKey } from '@/api/system/config'; -import type { download as rd } from '@/utils/request'; +import modal from '@/plugins/modal'; +import tab from '@/plugins/tab'; +import download from '@/plugins/download'; +import auth from '@/plugins/auth'; +import cache from '@/plugins/cache'; +import animate from '@/animate'; +import { useDict } from '@/utils/dict'; +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 {}; declare module '@vue/runtime-core' { interface ComponentCustomProperties { @@ -18,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; @@ -30,3 +38,18 @@ parseTime: typeof parseTime; } } + +/** + * { 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