{"_id":"@cimom/vben-core-typings","_rev":"9-512bd0a1a50d6f15d50de9613038c896","name":"@cimom/vben-core-typings","dist-tags":{"latest":"5.6.4"},"versions":{"5.5.6":{"name":"@cimom/vben-core-typings","version":"5.5.6","author":{"name":"Andy Huang","email":"57237184@qq.com"},"license":"MIT","_id":"@cimom/vben-core-typings@5.5.6","maintainers":[{"name":"hdeqi2005","email":"57237184@qq.com"},{"name":"xxcazzy","email":"6983376@qq.com"}],"homepage":"https://github.com/vbenjs/vue-vben-admin","bugs":{"url":"https://github.com/vbenjs/vue-vben-admin/issues"},"dist":{"shasum":"3818d2f152329f56f93af460fa320c13f189f7e9","tarball":"https://registry.npmjs.org/@cimom/vben-core-typings/-/vben-core-typings-5.5.6.tgz","fileCount":4,"integrity":"sha512-/R7W6KvRmKepOvW3r61EdHJoqstq5loZBrsEV+FzzdP1kg1j0KynFPQsRdZFA/FAyHK3RBdbUpTrSMuohbJNtQ==","signatures":[{"sig":"MEUCIQDvjplNTGSyPl3s9T4oi/iMGPu8gU8WZqLI+MfKkzD50QIgaCqAEV3S9KKgPH0lv4AW36dEEhA7nhLYPIdz+L/I4f0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18534},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./src/index.ts","default":"./dist/index.mjs","development":"./src/index.ts"},"./vue-router":{"types":"./vue-router.d.ts"}},"private":false,"scripts":{"build":"pnpm unbuild"},"_npmUser":{"name":"hdeqi2005","email":"57237184@qq.com"},"repository":{"url":"git+https://github.com/vbenjs/vue-vben-admin.git","type":"git","directory":"packages/@vben-core/base/typings"},"_npmVersion":"10.5.1","directories":{},"_nodeVersion":"22.0.0","dependencies":{"vue":"^3.5.13","vue-router":"^4.5.1"},"publishConfig":{"access":"public","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"}}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vben-core-typings_5.5.6_1748308854412_0.7017886119173957","host":"s3://npm-registry-packages-npm-production"}},"5.5.9":{"name":"@cimom/vben-core-typings","version":"5.5.9","author":{"name":"Andy Huang","email":"57237184@qq.com"},"license":"MIT","_id":"@cimom/vben-core-typings@5.5.9","maintainers":[{"name":"hdeqi2005","email":"57237184@qq.com"},{"name":"xxcazzy","email":"6983376@qq.com"}],"homepage":"https://github.com/vbenjs/vue-vben-admin","bugs":{"url":"https://github.com/vbenjs/vue-vben-admin/issues"},"dist":{"shasum":"5a44b92b9d5303538ebfe8cecc7082b80e5c5571","tarball":"https://registry.npmjs.org/@cimom/vben-core-typings/-/vben-core-typings-5.5.9.tgz","fileCount":5,"integrity":"sha512-/7liZQ33QgOcJT36NSI2Mjpq+5a8ub10Gz/Bvz9+xq1Ds6BEwm+pdQ3olt9ScmdexhUV2y7T7OMkXzAZbWfjGQ==","signatures":[{"sig":"MEYCIQD7LEyRaSVVpvAb+bKT7/f0DEO6u14zP0sTiIR0ffj8OAIhAMj/oQ4UFqJAaTbJsz925Q51VZz1IakQ1/1XyXx2OpmQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28713},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./src/index.ts","default":"./dist/index.mjs","development":"./src/index.ts"},"./vue-router":{"types":"./vue-router.d.ts"}},"private":false,"scripts":{"build":"pnpm unbuild"},"_npmUser":{"name":"hdeqi2005","email":"57237184@qq.com"},"repository":{"url":"git+https://github.com/vbenjs/vue-vben-admin.git","type":"git","directory":"packages/@vben-core/base/typings"},"_npmVersion":"10.5.1","description":"该包提供了 Vue Vben Admin 项目的核心类型定义，包括通用类型、应用类型、路由类型、菜单类型等。它是整个项目类型系统的基础，确保了代码的类型安全和开发体验。","directories":{},"_nodeVersion":"22.0.0","dependencies":{"vue":"^3.5.13","vue-router":"^4.5.1"},"publishConfig":{"access":"public","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"}}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vben-core-typings_5.5.9_1748392310165_0.6185363837391231","host":"s3://npm-registry-packages-npm-production"}},"5.5.12":{"name":"@cimom/vben-core-typings","version":"5.5.12","author":{"name":"Andy Huang","email":"57237184@qq.com"},"license":"MIT","_id":"@cimom/vben-core-typings@5.5.12","maintainers":[{"name":"hdeqi2005","email":"57237184@qq.com"},{"name":"xxcazzy","email":"6983376@qq.com"}],"homepage":"https://github.com/vbenjs/vue-vben-admin","bugs":{"url":"https://github.com/vbenjs/vue-vben-admin/issues"},"dist":{"shasum":"2bde344c8bbdfb690919e9205ee275b946d82c93","tarball":"https://registry.npmjs.org/@cimom/vben-core-typings/-/vben-core-typings-5.5.12.tgz","fileCount":12,"integrity":"sha512-cbdSs0yYq8clnZD+Vi+QWew2fu/s/mOVkA9CjF3F+rKDw4VP2CHkNeqpKiLl83faMxVC1Idks2zh+hMwKVVp7A==","signatures":[{"sig":"MEUCIFw+2JW/gaep4hIDmtsfMR7EYw9gRVvd+ahYm1SAm0iAAiEAnIQImq2nuKS2Fd/4a8BxIkwmq6h/aSEgUxOf4CC1vcM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18189},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"./vue-router":{"types":"./vue-router.d.ts"}},"private":false,"scripts":{"build":"pnpm unbuild"},"_npmUser":{"name":"hdeqi2005","email":"57237184@qq.com"},"repository":{"url":"git+https://github.com/vbenjs/vue-vben-admin.git","type":"git","directory":"packages/@vben-core/base/typings"},"_npmVersion":"10.5.1","description":"该包提供了 Vue Vben Admin 项目的核心类型定义，包括通用类型、应用类型、路由类型、菜单类型等。它是整个项目类型系统的基础，确保了代码的类型安全和开发体验。","directories":{},"_nodeVersion":"22.0.0","dependencies":{"vue":"^3.5.13","vue-router":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vben-core-typings_5.5.12_1748505343202_0.12949070806724117","host":"s3://npm-registry-packages-npm-production"}},"5.6.0":{"name":"@cimom/vben-core-typings","version":"5.6.0","author":{"name":"Andy Huang","email":"57237184@qq.com"},"license":"MIT","_id":"@cimom/vben-core-typings@5.6.0","maintainers":[{"name":"hdeqi2005","email":"57237184@qq.com"},{"name":"xxcazzy","email":"6983376@qq.com"}],"homepage":"https://github.com/vbenjs/vue-vben-admin","bugs":{"url":"https://github.com/vbenjs/vue-vben-admin/issues"},"dist":{"shasum":"74ef69fa240e40bfa1f695c4a1ef62b46cdb4ff6","tarball":"https://registry.npmjs.org/@cimom/vben-core-typings/-/vben-core-typings-5.6.0.tgz","fileCount":4,"integrity":"sha512-HPTwLFySRDu2fiSsrpqA2aXyKS91zNif0fj+E2hcWS/aTS2oCnCvdWLHkxjJCgt1jthi4RgjPJCFMp+Mg3wTaA==","signatures":[{"sig":"MEQCIC0oIIuk3F2mOyVF4UaJWVRWnX2VUzkIhUf245heYb2gAiAN/XGgFQkl7LdINLltDwfGRiezN8ClGVpkmj1Hx9476w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18378},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"./vue-router":{"types":"./vue-router.d.ts"}},"gitHead":"24e92c6254ccf3ebf0a31fecdee560339ed47e46","private":false,"scripts":{"build":"pnpm unbuild"},"_npmUser":{"name":"hdeqi2005","email":"57237184@qq.com"},"repository":{"url":"git+https://github.com/vbenjs/vue-vben-admin.git","type":"git","directory":"packages/@vben-core/base/typings"},"_npmVersion":"10.5.1","directories":{},"_nodeVersion":"22.0.0","dependencies":{"vue":"^3.5.13","vue-router":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vben-core-typings_5.6.0_1749428693828_0.0168306684078241","host":"s3://npm-registry-packages-npm-production"}},"5.6.1":{"name":"@cimom/vben-core-typings","version":"5.6.1","author":{"name":"Andy Huang","email":"57237184@qq.com"},"license":"MIT","_id":"@cimom/vben-core-typings@5.6.1","maintainers":[{"name":"hdeqi2005","email":"57237184@qq.com"},{"name":"xxcazzy","email":"6983376@qq.com"}],"homepage":"https://github.com/vbenjs/vue-vben-admin","bugs":{"url":"https://github.com/vbenjs/vue-vben-admin/issues"},"dist":{"shasum":"87283e4e1ce9eac4b3b68bf9bcdbdf3b731f0393","tarball":"https://registry.npmjs.org/@cimom/vben-core-typings/-/vben-core-typings-5.6.1.tgz","fileCount":5,"integrity":"sha512-d60qRjlKL0WjCV0fj7GzQH/8hvgaH4FBTI3SOJ2xe14gFs8vuO2ErWuyT5MUZo+4DqpcSNRS6o+13DPsmzAGzw==","signatures":[{"sig":"MEYCIQCsvcsTsa5ogMNtwdVpT6hiZGmcTxwV9V2emCE4VaaJrwIhALGarW0RFnxLVnjgetwXOXZzhr7cHExs54WjjAQPoGnp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28557},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"./vue-router":{"types":"./vue-router.d.ts"}},"gitHead":"24e92c6254ccf3ebf0a31fecdee560339ed47e46","private":false,"scripts":{"build":"pnpm unbuild"},"_npmUser":{"name":"hdeqi2005","email":"57237184@qq.com"},"repository":{"url":"git+https://github.com/vbenjs/vue-vben-admin.git","type":"git","directory":"packages/@vben-core/base/typings"},"_npmVersion":"10.5.1","description":"该包提供了 Vue Vben Admin 项目的核心类型定义，包括通用类型、应用类型、路由类型、菜单类型等。它是整个项目类型系统的基础，确保了代码的类型安全和开发体验。","directories":{},"_nodeVersion":"22.0.0","dependencies":{"vue":"^3.5.13","vue-router":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vben-core-typings_5.6.1_1749440532216_0.8388205321329856","host":"s3://npm-registry-packages-npm-production"}},"5.6.2":{"name":"@cimom/vben-core-typings","version":"5.6.2","author":{"name":"Andy Huang","email":"57237184@qq.com"},"license":"MIT","_id":"@cimom/vben-core-typings@5.6.2","maintainers":[{"name":"hdeqi2005","email":"57237184@qq.com"},{"name":"xxcazzy","email":"6983376@qq.com"}],"homepage":"https://github.com/vbenjs/vue-vben-admin","bugs":{"url":"https://github.com/vbenjs/vue-vben-admin/issues"},"dist":{"shasum":"5794b39102aa216f44991a28128dcc619e149c3d","tarball":"https://registry.npmjs.org/@cimom/vben-core-typings/-/vben-core-typings-5.6.2.tgz","fileCount":2,"integrity":"sha512-+6TUHs0Z78USqyz7TZINhqZHbm46dLiF9vh3KRc20mqKN1h2Svcm4zHryTCVltTlaW52xXvhPcprhbo86rITwA==","signatures":[{"sig":"MEQCICnW3lXBTaaBZUti5/5urWC8kT5ESaIn32ZcmuYBXYXcAiBWSQIl4hwDn2w999Ii+65VQbbr2d6qZObO8p9/4L/kUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11126},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"./vue-router":{"types":"./vue-router.d.ts"}},"gitHead":"24e92c6254ccf3ebf0a31fecdee560339ed47e46","private":false,"scripts":{"build":"pnpm unbuild"},"_npmUser":{"name":"hdeqi2005","email":"57237184@qq.com"},"repository":{"url":"git+https://github.com/vbenjs/vue-vben-admin.git","type":"git","directory":"packages/@vben-core/base/typings"},"_npmVersion":"10.5.1","description":"该包提供了 Vue Vben Admin 项目的核心类型定义，包括通用类型、应用类型、路由类型、菜单类型等。它是整个项目类型系统的基础，确保了代码的类型安全和开发体验。","directories":{},"_nodeVersion":"22.0.0","dependencies":{"vue":"^3.5.13","vue-router":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vben-core-typings_5.6.2_1749456238397_0.298840781474754","host":"s3://npm-registry-packages-npm-production"}},"5.6.3":{"name":"@cimom/vben-core-typings","version":"5.6.3","author":{"name":"Andy Huang","email":"57237184@qq.com"},"license":"MIT","_id":"@cimom/vben-core-typings@5.6.3","maintainers":[{"name":"hdeqi2005","email":"57237184@qq.com"},{"name":"xxcazzy","email":"6983376@qq.com"}],"homepage":"https://github.com/vbenjs/vue-vben-admin","bugs":{"url":"https://github.com/vbenjs/vue-vben-admin/issues"},"dist":{"shasum":"9d0305661a0c1730760bc02b24c2cd52cf18bd0d","tarball":"https://registry.npmjs.org/@cimom/vben-core-typings/-/vben-core-typings-5.6.3.tgz","fileCount":5,"integrity":"sha512-+aNrxZkfCzog1wqVtAA2J70x2xJ/NqD3RpVOUwfMk0vzwMC7wo73IapMnzwWcLn6kmnXje35MucGdcWqpOuAmw==","signatures":[{"sig":"MEUCIFH0dhxYmHvPhEV/N/dtvlRlxpOlUxRHrrGNYbWrb9hEAiEA0QcSuPOk1rBpbaIQ9ikLV4N7pCutQSJAPgS57pbkqU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28558},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.d.ts"},"./vue-router":{"types":"./vue-router.d.ts"}},"gitHead":"24e92c6254ccf3ebf0a31fecdee560339ed47e46","private":false,"scripts":{"build":"pnpm unbuild"},"_npmUser":{"name":"hdeqi2005","email":"57237184@qq.com"},"repository":{"url":"git+https://github.com/vbenjs/vue-vben-admin.git","type":"git","directory":"packages/@vben-core/base/typings"},"_npmVersion":"10.5.1","description":"该包提供了 Vue Vben Admin 项目的核心类型定义，包括通用类型、应用类型、路由类型、菜单类型等。它是整个项目类型系统的基础，确保了代码的类型安全和开发体验。","directories":{},"_nodeVersion":"22.0.0","dependencies":{"vue":"^3.5.13","vue-router":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vben-core-typings_5.6.3_1749472967149_0.042881766844451885","host":"s3://npm-registry-packages-npm-production"}},"5.6.4":{"name":"@cimom/vben-core-typings","version":"5.6.4","author":{"name":"Andy Huang","email":"57237184@qq.com"},"license":"MIT","_id":"@cimom/vben-core-typings@5.6.4","maintainers":[{"name":"hdeqi2005","email":"57237184@qq.com"},{"name":"xxcazzy","email":"6983376@qq.com"}],"homepage":"https://github.com/vbenjs/vue-vben-admin","bugs":{"url":"https://github.com/vbenjs/vue-vben-admin/issues"},"dist":{"shasum":"3ac9c340923b31c6f529972f938d2b98ab69d4a7","tarball":"https://registry.npmjs.org/@cimom/vben-core-typings/-/vben-core-typings-5.6.4.tgz","fileCount":12,"integrity":"sha512-7WbyT7Jow1XBEmXuvG8MXhqZ4NAQ9o4M39rhYwWKAfdiZI1H+V1ASVhUxlt0qWGBFMGTIvIi9+sN7f304eA2Gw==","signatures":[{"sig":"MEQCIAHno94wb2MAwiw2Neywy/o9KeutbT+6XMrBrobVDmhhAiAuN2czwb/7M7mRUkr4+mopcayIR32cWzxmZtmtjYj4/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38260},"main":"./dist/index.mjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.d.ts"},"./vue-router":{"types":"./vue-router.d.ts"}},"gitHead":"4658e451554fb07b03bcd870c1694010f7362c31","private":false,"scripts":{"build":"pnpm unbuild"},"_npmUser":{"name":"hdeqi2005","email":"57237184@qq.com"},"repository":{"url":"git+https://github.com/vbenjs/vue-vben-admin.git","type":"git","directory":"packages/@vben-core/base/typings"},"_npmVersion":"10.5.1","description":"该包提供了 Vue Vben Admin 项目的核心类型定义，包括通用类型、应用类型、路由类型、菜单类型等。它是整个项目类型系统的基础，确保了代码的类型安全和开发体验。","directories":{},"_nodeVersion":"22.0.0","dependencies":{"vue":"^3.5.13","vue-router":"^4.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vben-core-typings_5.6.4_1749566780737_0.6280404344342685","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-05-27T01:20:54.331Z","modified":"2026-01-14T01:37:35.146Z","5.5.6":"2025-05-27T01:20:54.642Z","5.5.9":"2025-05-28T00:31:50.366Z","5.5.12":"2025-05-29T07:55:43.448Z","5.6.0":"2025-06-09T00:24:54.014Z","5.6.1":"2025-06-09T03:42:12.412Z","5.6.2":"2025-06-09T08:03:58.574Z","5.6.3":"2025-06-09T12:42:47.323Z","5.6.4":"2025-06-10T14:46:20.906Z"},"bugs":{"url":"https://github.com/vbenjs/vue-vben-admin/issues"},"author":{"name":"Andy Huang","email":"57237184@qq.com"},"license":"MIT","homepage":"https://github.com/vbenjs/vue-vben-admin","repository":{"url":"git+https://github.com/vbenjs/vue-vben-admin.git","type":"git","directory":"packages/@vben-core/base/typings"},"description":"该包提供了 Vue Vben Admin 项目的核心类型定义，包括通用类型、应用类型、路由类型、菜单类型等。它是整个项目类型系统的基础，确保了代码的类型安全和开发体验。","maintainers":[{"email":"msj1370380114@gmail.com","name":"moushangjie"},{"email":"57237184@qq.com","name":"hdeqi2005"},{"email":"6983376@qq.com","name":"xxcazzy"}],"readme":"# @cimom/vben-core-typings\n\n该包提供了 Vue Vben Admin 项目的核心类型定义，包括通用类型、应用类型、路由类型、菜单类型等。它是整个项目类型系统的基础，确保了代码的类型安全和开发体验。\n\n## 安装\n\n```bash\npnpm add @cimom/vben-core-typings\n```\n\n## 基本使用\n\n### 导入基础类型\n\n```ts\nimport type {\n  Nullable,\n  Recordable,\n  DeepPartial,\n  TimeoutHandle,\n  AnyFunction,\n} from '@cimom/vben-core-typings';\n\n// 可为空类型\nconst userName: Nullable<string> = null;\n\n// 字符串键对象\nconst params: Recordable<string> = {\n  id: '1',\n  name: 'admin',\n};\n\n// 深度可选类型\ninterface UserConfig {\n  id: string;\n  name: string;\n  settings: {\n    theme: string;\n    language: string;\n  };\n}\n\nconst partialConfig: DeepPartial<UserConfig> = {\n  name: 'admin',\n  settings: {\n    theme: 'dark',\n  },\n};\n\n// 超时句柄类型\nlet timer: TimeoutHandle;\n\n// 任意函数类型\nconst handler: AnyFunction = (a: number, b: number) => a + b;\n```\n\n### 使用应用类型\n\n```ts\nimport type { BasicUserInfo, AppConfig } from '@cimom/vben-core-typings';\n\n// 用户信息\nconst userInfo: BasicUserInfo = {\n  userId: '1',\n  username: 'admin',\n  realName: '管理员',\n  avatar: '/avatar.png',\n  roles: ['admin'],\n};\n\n// 应用配置\nconst appConfig: AppConfig = {\n  apiUrl: 'https://api.example.com',\n  title: 'Vben Admin',\n  logo: '/logo.png',\n  theme: 'light',\n};\n```\n\n### 使用菜单和路由类型\n\n```ts\nimport type {\n  MenuRecordRaw,\n  RouteLocationWithMeta,\n} from '@cimom/vben-core-typings';\n\n// 菜单配置\nconst menus: MenuRecordRaw[] = [\n  {\n    path: '/dashboard',\n    name: 'Dashboard',\n    icon: 'dashboard',\n    children: [\n      {\n        path: '/dashboard/analysis',\n        name: 'Analysis',\n        icon: 'chart',\n      },\n      {\n        path: '/dashboard/workbench',\n        name: 'Workbench',\n        icon: 'desktop',\n      },\n    ],\n  },\n];\n\n// 带元数据的路由\nfunction handleRoute(route: RouteLocationWithMeta) {\n  console.log(route.meta.title);\n  console.log(route.meta.icon);\n  console.log(route.meta.permissions);\n}\n```\n\n## 包含类型\n\n### 基础类型 (basic.d.ts)\n\n提供基础通用类型：\n\n```ts\n// 基础选项类型\ninterface BasicOption {\n  label: string;\n  value: string;\n}\n\n// 选择器选项\ntype SelectOption = BasicOption;\n\n// 标签选项\ntype TabOption = BasicOption;\n\n// 基础用户信息\ninterface BasicUserInfo {\n  // 头像\n  avatar: string;\n  // 用户昵称\n  realName: string;\n  // 用户角色\n  roles?: string[];\n  // 用户id\n  userId: string;\n  // 用户名\n  username: string;\n}\n\n// 类名类型\ntype ClassType = Array<object | string> | object | string;\n```\n\n### 辅助类型 (helper.d.ts)\n\n提供各种工具类型：\n\n```ts\n// 深度可选类型\ntype DeepPartial<T> = T extends object\n  ? { [P in keyof T]?: DeepPartial<T[P]> }\n  : T;\n\n// 深度只读类型\ntype DeepReadonly<T> = {\n  readonly [P in keyof T]: T[P] extends object ? DeepReadonly<T[P]> : T[P];\n};\n\n// 异步函数类型\ntype AnyPromiseFunction<T extends any[] = any[], R = void> = (\n  ...arg: T\n) => PromiseLike<R>;\n\n// 普通函数类型\ntype AnyNormalFunction<T extends any[] = any[], R = void> = (...arg: T) => R;\n\n// 任意函数类型\ntype AnyFunction<T extends any[] = any[], R = void> =\n  | AnyNormalFunction<T, R>\n  | AnyPromiseFunction<T, R>;\n\n// 可空类型\ntype Nullable<T> = null | T;\n\n// 非空类型\ntype NonNullable<T> = T extends null | undefined ? never : T;\n\n// 字符串键对象\ntype Recordable<T = any> = Record<string, T>;\n\n// 只读字符串键对象\ninterface ReadonlyRecordable<T = any> {\n  readonly [key: string]: T;\n}\n\n// 定时器句柄类型\ntype TimeoutHandle = ReturnType<typeof setTimeout>;\ntype IntervalHandle = ReturnType<typeof setInterval>;\n\n// 合并类型\ntype Merge<O extends object, T extends object> = {\n  [K in keyof O | keyof T]: K extends keyof T\n    ? T[K]\n    : K extends keyof O\n      ? O[K]\n      : never;\n};\n\n// 合并多个类型\ntype MergeAll<T extends object[]> = T extends [infer F, ...infer R]\n  ? F extends object\n    ? R extends object[]\n      ? Merge<F, MergeAll<R>>\n      : F\n    : never\n  : {};\n```\n\n### 应用类型 (app.d.ts)\n\n提供应用相关类型：\n\n```ts\n// 应用环境配置\ninterface AppEnvConfig {\n  // 接口前缀\n  VITE_GLOB_API_URL: string;\n  // 接口前缀\n  VITE_GLOB_API_URL_PREFIX?: string;\n  // 项目标题\n  VITE_GLOB_APP_TITLE: string;\n  // 项目简称\n  VITE_GLOB_APP_SHORT_NAME: string;\n  // 上传URL\n  VITE_GLOB_UPLOAD_URL?: string;\n}\n\n// 应用配置\ninterface AppConfig {\n  // 项目标题\n  title: string;\n  // API接口URL\n  apiUrl: string;\n  // 上传URL\n  uploadUrl?: string;\n  // API接口前缀\n  urlPrefix?: string;\n  // 项目简称\n  shortName?: string;\n}\n\n// 多语言类型\ntype LocaleType = 'zh_CN' | 'en' | 'ru' | 'ja' | 'ko';\n\n// 主题类型\ntype ThemeType = 'dark' | 'light';\n```\n\n### 菜单类型 (menu-record.ts)\n\n提供菜单相关类型：\n\n```ts\n// 菜单项\ninterface MenuRecordRaw {\n  // 菜单路径\n  path: string;\n  // 菜单名称\n  name: string;\n  // 菜单图标\n  icon?: string;\n  // 是否禁用\n  disabled?: boolean;\n  // 子菜单\n  children?: MenuRecordRaw[];\n  // 菜单排序\n  orderNo?: number;\n  // 路由元数据\n  meta?: RouteMeta;\n  // 是否隐藏\n  hidden?: boolean;\n  // 是否隐藏子菜单\n  hideChildrenInMenu?: boolean;\n  // 重定向路径\n  redirect?: string;\n}\n```\n\n### 路由类型 (vue-router.d.ts)\n\n扩展 Vue Router 的类型：\n\n```ts\n// 路由元数据\ninterface RouteMeta {\n  // 路由标题\n  title: string;\n  // 是否忽略权限\n  ignoreAuth?: boolean;\n  // 角色列表\n  roles?: string[];\n  // 是否缓存\n  keepAlive?: boolean;\n  // 图标\n  icon?: string;\n  // 是否固定标签\n  affix?: boolean;\n  // 路由路径\n  path?: string;\n  // 过渡名称\n  transitionName?: string;\n  // 是否隐藏路由\n  hideBreadcrumb?: boolean;\n  // 是否隐藏子路由\n  hideChildrenInMenu?: boolean;\n  // 是否单级菜单\n  single?: boolean;\n  // 当前活动菜单\n  currentActiveMenu?: string;\n  // 是否禁用\n  disabled?: boolean;\n  // 排序\n  orderNo?: number;\n  // 是否忽略缓存\n  ignoreKeepAlive?: boolean;\n  // 是否隐藏标签\n  hideTab?: boolean;\n  // 是否在菜单中隐藏\n  hideMenu?: boolean;\n  // 是否动态路由\n  dynamicLevel?: number;\n  // 真实路径\n  realPath?: string;\n  // 权限列表\n  permissions?: string[];\n}\n\n// 带元数据的路由位置\ninterface RouteLocationWithMeta extends RouteLocationNormalized {\n  meta: RouteMeta;\n}\n\n// 扩展路由记录\ninterface ExRouteRecordRaw extends Omit<RouteRecordRaw, 'meta' | 'children'> {\n  meta: RouteMeta;\n  children?: ExRouteRecordRaw[];\n  props?: Recordable;\n  fullPath?: string;\n}\n```\n\n### 标签类型 (tabs.ts)\n\n提供标签页相关类型：\n\n```ts\n// 标签页项\ninterface TabItem {\n  key: string;\n  label: string;\n  path: string;\n  closable?: boolean;\n  disabled?: boolean;\n}\n```\n\n## 高级用法\n\n### 类型扩展\n\n可以通过模块声明扩展现有类型：\n\n```ts\n// 扩展路由元数据\nimport '@cimom/vben-core-typings';\n\ndeclare module '@cimom/vben-core-typings' {\n  interface RouteMeta {\n    // 添加自定义属性\n    customField?: string;\n    importance?: number;\n  }\n}\n```\n\n### 类型组合\n\n利用工具类型组合创建复杂类型：\n\n```ts\nimport type {\n  DeepPartial,\n  Recordable,\n  Merge,\n  MergeAll,\n} from '@cimom/vben-core-typings';\n\n// 基础配置\ninterface BaseConfig {\n  apiUrl: string;\n  timeout: number;\n}\n\n// 主题配置\ninterface ThemeConfig {\n  theme: 'light' | 'dark';\n  primaryColor: string;\n}\n\n// 合并配置\ntype AppConfig = Merge<BaseConfig, ThemeConfig>;\n\n// 创建可选配置\ntype OptionalConfig = DeepPartial<AppConfig>;\n\n// 创建多个配置合并\ntype FullConfig = MergeAll<\n  [BaseConfig, ThemeConfig, { features: Recordable<boolean> }]\n>;\n```\n\n### 类型守卫\n\n结合类型定义创建类型守卫函数：\n\n```ts\nimport type { BasicUserInfo, MenuRecordRaw } from '@cimom/vben-core-typings';\n\n// 用户信息类型守卫\nfunction isUserInfo(obj: any): obj is BasicUserInfo {\n  return (\n    obj &&\n    typeof obj === 'object' &&\n    'userId' in obj &&\n    'username' in obj &&\n    'avatar' in obj\n  );\n}\n\n// 菜单项类型守卫\nfunction isMenuItem(obj: any): obj is MenuRecordRaw {\n  return (\n    obj &&\n    typeof obj === 'object' &&\n    'path' in obj &&\n    'name' in obj &&\n    typeof obj.path === 'string' &&\n    typeof obj.name === 'string'\n  );\n}\n```\n\n## 与其他包的关系\n\n- **@cimom/vben-types**: 基于此包构建，提供了更高级别的类型封装和组织。\n- **@cimom/vben-core-shared**: 使用此包的类型定义作为基础工具函数的参数和返回值类型。\n- **@cimom/vben-core-ui-kit**: 使用此包的类型定义构建 UI 组件的 Props 和事件类型。\n- **@cimom/vben-effects-hooks**: 使用此包的类型定义作为钩子函数的参数和返回值类型。\n\n## 注意事项\n\n1. 该包是核心类型定义，被多个其他包依赖，修改时需谨慎。\n2. 扩展类型时应避免破坏现有类型的兼容性。\n3. 在使用泛型类型时，应提供适当的类型参数以获得更好的类型推断。\n\n## 常见问题\n\n### 类型不兼容\n\n当遇到类型不兼容问题时，可以使用类型断言或类型转换：\n\n```ts\nimport type { Recordable, DeepPartial } from '@cimom/vben-core-typings';\n\n// 使用类型断言\nconst config = someValue as Recordable<string>;\n\n// 使用类型转换函数\nfunction toPartial<T>(obj: T): DeepPartial<T> {\n  return obj as DeepPartial<T>;\n}\n```\n\n### 扩展 Vue Router 类型\n\n如果需要在项目中使用扩展的路由类型，可以创建类型声明文件：\n\n```ts\n// typings.d.ts\nimport '@cimom/vben-core-typings/vue-router';\n```\n\n这将确保 Vue Router 的类型被正确扩展。\n\n### 自定义类型工具\n\n如果需要基于现有类型创建自定义工具类型，可以这样做：\n\n```ts\nimport type { DeepPartial, Recordable } from '@cimom/vben-core-typings';\n\n// 创建只读版本的 DeepPartial\ntype ReadonlyDeepPartial<T> = {\n  readonly [P in keyof DeepPartial<T>]: DeepPartial<T>[P];\n};\n\n// 创建字符串枚举对象\ntype StringEnum<T extends string> = Recordable<T>;\n```\n","readmeFilename":"README.md"}