From c22de5c35b4781322c9ee17ad375ec0af2fe60a7 Mon Sep 17 00:00:00 2001
From: vben <anncwb@126.com>
Date: 星期一, 11 一月 2021 21:05:16 +0800
Subject: [PATCH] fix: useI18n type

---
 src/hooks/web/useI18n.ts                  |   21 ++++++++++++++++++---
 src/views/demo/feat/img-preview/index.vue |    5 +++--
 2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/src/hooks/web/useI18n.ts b/src/hooks/web/useI18n.ts
index d035795..334208b 100644
--- a/src/hooks/web/useI18n.ts
+++ b/src/hooks/web/useI18n.ts
@@ -1,6 +1,21 @@
 import { i18n } from '/@/locales/setupI18n';
 
-export function useI18n(namespace?: string) {
+type I18nGlobalTranslation = {
+  (key: string): string;
+  (key: string, locale: string): string;
+  (key: string, locale: string, list: unknown[]): string;
+  (key: string, locale: string, named: Record<string, unknown>): string;
+  (key: string, list: unknown[]): string;
+  (key: string, named: Record<string, unknown>): string;
+};
+
+type I18nTranslationRestParameters = [string, any];
+
+export function useI18n(
+  namespace?: string
+): {
+  t: I18nGlobalTranslation;
+} {
   function getKey(key: string) {
     if (!namespace) {
       return key;
@@ -22,9 +37,9 @@
 
   const { t, ...methods } = i18n.global;
 
-  const tFn: typeof t = (key: string, ...arg: any) => {
+  const tFn: I18nGlobalTranslation = (key: string, ...arg: any[]) => {
     if (!key) return '';
-    return t(getKey(key), ...(arg as Parameters<typeof t>));
+    return t(getKey(key), ...(arg as I18nTranslationRestParameters));
   };
   return {
     ...methods,
diff --git a/src/views/demo/feat/img-preview/index.vue b/src/views/demo/feat/img-preview/index.vue
index ca46211..9e8b7a1 100644
--- a/src/views/demo/feat/img-preview/index.vue
+++ b/src/views/demo/feat/img-preview/index.vue
@@ -1,5 +1,6 @@
 <template>
   <PageWrapper title="鍥剧墖棰勮绀轰緥">
+    <ImagePreview :imageList="imgList" />
     <Alert message="鏈夐瑙堝浘" type="info" />
     <div class="flex justify-center mt-4">
       <img :src="img" v-for="img in imgList" :key="img" class="mr-2" @click="handleClick(img)" />
@@ -11,7 +12,7 @@
 <script lang="ts">
   import { defineComponent } from 'vue';
   import { Alert } from 'ant-design-vue';
-  import { createImgPreview } from '/@/components/Preview/index';
+  import { createImgPreview, ImagePreview } from '/@/components/Preview/index';
   import { PageWrapper } from '/@/components/Page';
 
   const imgList: string[] = [
@@ -20,7 +21,7 @@
     'https://picsum.photos/id/68/346/216',
   ];
   export default defineComponent({
-    components: { Alert, PageWrapper },
+    components: { Alert, PageWrapper, ImagePreview },
     setup() {
       function handleClick(img: string) {
         createImgPreview({ imageList: [img] });

--
Gitblit v1.8.0