diff --git a/src/components/Icon/index.ts b/src/components/Icon/index.ts
index cf92784..83469d4 100644
--- a/src/components/Icon/index.ts
+++ b/src/components/Icon/index.ts
@@ -1,3 +1,5 @@
 import Icon from './src/Icon.vue'
 
+export type { IconTypes } from './src/types'
+
 export { Icon }
diff --git a/src/types/icon.ts b/src/components/Icon/src/types/index.ts
similarity index 100%
rename from src/types/icon.ts
rename to src/components/Icon/src/types/index.ts
diff --git a/src/components/Infotip/index.ts b/src/components/Infotip/index.ts
index 413fa5f..eb99944 100644
--- a/src/components/Infotip/index.ts
+++ b/src/components/Infotip/index.ts
@@ -1,3 +1,5 @@
 import Infotip from './src/Infotip.vue'
 
+export type { InfoTipSchema } from './src/types'
+
 export { Infotip }
diff --git a/src/types/infoTip.ts b/src/components/Infotip/src/types/index.ts
similarity index 52%
rename from src/types/infoTip.ts
rename to src/components/Infotip/src/types/index.ts
index 6eff083..50398db 100644
--- a/src/types/infoTip.ts
+++ b/src/components/Infotip/src/types/index.ts
@@ -1,4 +1,4 @@
-export interface TipSchema {
+export interface InfoTipSchema {
   label: string
   keys?: string[]
 }
diff --git a/src/components/LocaleDropdown/index.ts b/src/components/LocaleDropdown/index.ts
index d02e640..4d9b98a 100644
--- a/src/components/LocaleDropdown/index.ts
+++ b/src/components/LocaleDropdown/index.ts
@@ -1,3 +1,5 @@
 import LocaleDropdown from './src/LocaleDropdown.vue'
 
+export type { Language, LocaleDropdownType } from './src/types'
+
 export { LocaleDropdown }
diff --git a/src/types/localeDropdown.ts b/src/components/LocaleDropdown/src/types/index.ts
similarity index 100%
rename from src/types/localeDropdown.ts
rename to src/components/LocaleDropdown/src/types/index.ts
diff --git a/src/components/Qrcode/index.ts b/src/components/Qrcode/index.ts
index ce46161..263f039 100644
--- a/src/components/Qrcode/index.ts
+++ b/src/components/Qrcode/index.ts
@@ -1,3 +1,5 @@
 import Qrcode from './src/Qrcode.vue'
 
+export type { QrcodeLogo } from './src/types'
+
 export { Qrcode }
diff --git a/src/components/Qrcode/src/Qrcode.vue b/src/components/Qrcode/src/Qrcode.vue
index 58a75f6..c243632 100644
--- a/src/components/Qrcode/src/Qrcode.vue
+++ b/src/components/Qrcode/src/Qrcode.vue
@@ -6,7 +6,7 @@ import { cloneDeep } from 'lodash-es'
 import { propTypes } from '@/utils/propTypes'
 import { useDesign } from '@/hooks/web/useDesign'
 import { isString } from '@/utils/is'
-import { QrcodeLogo } from '@/types/qrcode'
+import { QrcodeLogo } from '@/components/Qrcode'
 
 const props = defineProps({
   // img 或者 canvas,img不支持logo嵌套
diff --git a/src/types/qrcode.ts b/src/components/Qrcode/src/types/index.ts
similarity index 100%
rename from src/types/qrcode.ts
rename to src/components/Qrcode/src/types/index.ts
diff --git a/src/components/Table/src/types.ts b/src/components/Table/src/types/index.ts
similarity index 93%
rename from src/components/Table/src/types.ts
rename to src/components/Table/src/types/index.ts
index 1c7ff76..496bdde 100644
--- a/src/components/Table/src/types.ts
+++ b/src/components/Table/src/types/index.ts
@@ -1,6 +1,6 @@
 import { Pagination, TableColumn } from '@/types/table'
 
-export type TableProps = {
+export interface TableProps {
   pageSize?: number
   currentPage?: number
   // 是否多选
@@ -23,4 +23,5 @@ export type TableProps = {
   headerAlign?: 'left' | 'center' | 'right'
   data?: Recordable
   expand?: boolean
-} & Recordable
+  [key: string]: any
+}
diff --git a/src/hooks/web/useIcon.ts b/src/hooks/web/useIcon.ts
index 3500204..b76bb29 100644
--- a/src/hooks/web/useIcon.ts
+++ b/src/hooks/web/useIcon.ts
@@ -1,7 +1,6 @@
 import { h } from 'vue'
 import type { VNode } from 'vue'
-import { Icon } from '@/components/Icon'
-import { IconTypes } from '@/types/icon'
+import { Icon, IconTypes } from '@/components/Icon'
 
 export const useIcon = (props: IconTypes): VNode => {
   return h(Icon, props)
diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts
index 5cfdc2d..8c66a49 100644
--- a/src/store/modules/app.ts
+++ b/src/store/modules/app.ts
@@ -2,10 +2,7 @@ import { defineStore } from 'pinia'
 import { store } from '../index'
 import { setCssVar, humpToUnderline } from '@/utils'
 import { ElMessage } from 'element-plus'
-import { ElementPlusSize } from '@/types/elementPlus'
 import { useCache } from '@/hooks/web/useCache'
-import { LayoutType } from '@/types/layout'
-import { ThemeTypes } from '@/types/theme'
 
 const { wsCache } = useCache()
 
diff --git a/src/store/modules/locale.ts b/src/store/modules/locale.ts
index 1f7912f..fe43842 100644
--- a/src/store/modules/locale.ts
+++ b/src/store/modules/locale.ts
@@ -3,7 +3,7 @@ import { store } from '../index'
 import zhCn from 'element-plus/es/locale/lang/zh-cn'
 import en from 'element-plus/es/locale/lang/en'
 import { useCache } from '@/hooks/web/useCache'
-import { LocaleDropdownType } from '@/types/localeDropdown'
+import { LocaleDropdownType } from '@/components/LocaleDropdown'
 
 const { wsCache } = useCache()
 
diff --git a/src/types/theme.ts b/src/types/theme.ts
deleted file mode 100644
index ad649b0..0000000
--- a/src/types/theme.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-export type ThemeTypes = {
-  elColorPrimary?: string
-  leftMenuBorderColor?: string
-  leftMenuBgColor?: string
-  leftMenuBgLightColor?: string
-  leftMenuBgActiveColor?: string
-  leftMenuCollapseBgActiveColor?: string
-  leftMenuTextColor?: string
-  leftMenuTextActiveColor?: string
-  logoTitleTextColor?: string
-  logoBorderColor?: string
-  topHeaderBgColor?: string
-  topHeaderTextColor?: string
-  topHeaderHoverColor?: string
-  topToolBorderColor?: string
-}
diff --git a/types/global.d.ts b/types/global.d.ts
index 771783f..31eddfa 100644
--- a/types/global.d.ts
+++ b/types/global.d.ts
@@ -45,4 +45,21 @@ declare global {
     code: string
     data: T extends any ? T : T & any
   }
+
+  declare interface ThemeTypes {
+    elColorPrimary?: string
+    leftMenuBorderColor?: string
+    leftMenuBgColor?: string
+    leftMenuBgLightColor?: string
+    leftMenuBgActiveColor?: string
+    leftMenuCollapseBgActiveColor?: string
+    leftMenuTextColor?: string
+    leftMenuTextActiveColor?: string
+    logoTitleTextColor?: string
+    logoBorderColor?: string
+    topHeaderBgColor?: string
+    topHeaderTextColor?: string
+    topHeaderHoverColor?: string
+    topToolBorderColor?: string
+  }
 }