\n\nWhere I use config then, it shows me typing error.\nWhen I switch to the legacy tsconfig, typing issue are gone.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\nTypecheck summary: \n\n\n\napp/layouts/default.vue:35:33 - error TS2339: Property 'title' does not exist on type '{}'.\n\n35 title: appConfig.information?.title,\n ~~~~~\n\napp/layouts/default.vue:36:39 - error TS2339: Property 'description' does not exist on type '{}'.\n\n36 description: appConfig.information?.description,\n ~~~~~~~~~~~\n\napp/layouts/default.vue:39:36 - error TS2339: Property 'socials' does not exist on type '{}'.\n\n39 github: appConfig.information?.socials?.github,\n ~~~~~~~\n\napp/layouts/default.vue:40:38 - error TS2339: Property 'socials' does not exist on type '{}'.\n\n40 linkedin: appConfig.information?.socials?.linkedin,\n ~~~~~~~\n\napp/layouts/default.vue:41:40 - error TS2339: Property 'birthdate' does not exist on type '{}'.\n\n41 isBirthday: appConfig.information?.birthdate ? isBirthday(appConfig.information?.birthdate) : false,\n ~~~~~~~~~\n\napp/layouts/default.vue:41:86 - error TS2339: Property 'birthdate' does not exist on type '{}'.\n\n41 isBirthday: appConfig.information?.birthdate ? isBirthday(appConfig.information?.birthdate) : false,\n ~~~~~~~~~\n\napp/layouts/default.vue:44:27 - error TS2339: Property 'icons' does not exist on type '{}'.\n\n44 normal: appConfig.ui?.icons?.normal as string[] ?? [],\n ~~~~~\n\napp/layouts/default.vue:45:29 - error TS2339: Property 'icons' does not exist on type '{}'.\n\n45 birthday: appConfig.ui?.icons?.birthday as string[] ?? [],\n ~~~~~\n\napp/middleware/title.global.ts:5:28 - error TS2571: Object is of type 'unknown'.\n\n5 const appConfigTitle = useAppConfig().information.title;\n ~~~~~~~~~~~~~~~~~~~~~~~~~~\n\napp/pages/index.vue:14:62 - error TS2339: Property 'messages' does not exist on type '{}'.\n\n14 const messages = useState('randomIndex', () => appConfig.ui?.messages?.sort(() => Math.random() - 0.5))\n ~~~~~~~~\n\nnuxt.schema.ts:3:16 - error TS2304: Cannot find name 'defineNuxtSchema'.\n\n3 export default defineNuxtSchema({\n ~~~~~~~~~~~~~~~~\n\nnuxt.schema.ts:3:16 - error TS2304: Cannot find name 'defineNuxtSchema'.\n\n3 export default defineNuxtSchema({\n ~~~~~~~~~~~~~~~~\n\nnuxt.schema.ts:3:16 - error TS2304: Cannot find name 'defineNuxtSchema'.\n\n3 export default defineNuxtSchema({\n ~~~~~~~~~~~~~~~~\n```",[3018,3021],{"name":3019,"color":3020},"pending triage","E99695",{"name":3022,"color":3023},"possible regression","B90A42",32768,"nuxt","open","useAppConfig lose types from nuxt schema with new tsconfig","2025-07-25T22:51:01Z","https://github.com/nuxt/nuxt/issues/32768",0.61704105,{"description":3032,"labels":3033,"number":3034,"owner":3025,"repository":3035,"state":3026,"title":3036,"updated_at":3037,"url":3038,"score":3039},"Hi! 👋 \r\n \r\nFirstly, thanks for your work on this project! 🙂\r\n\r\nToday I used [patch-package](https://github.com/ds300/patch-package) to patch `nuxt-icon@0.6.1` for the project I'm working on.\r\n\r\n\r\n### Original problem\r\n\r\nWhen building my SSR nuxt app for production, I got these errors:\r\n\r\n```bash\r\nℹ Building server... 1:35:26 PM\r\nℹ vite v4.5.0 building SSR bundle for production... 1:35:26 PM\r\ntransforming (103) ../node_modules/nuxt/dist/app/compat/capi.jsnode_modules/nuxt-icon/dist/runtime/Icon.vue:10:19 - error TS2352: Conversion of type 'AppConfig' to type '{ nuxtIcon: { size?: string | undefined; class?: string | undefined; aliases?: Record\u003Cstring, string> | undefined; iconifyApiOptions?: { url?: string | undefined; publicApiFallback?: boolean | undefined; } | undefined; }; }' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.\r\n Property 'nuxtIcon' is missing in type 'AppConfig' but required in type '{ nuxtIcon: { size?: string | undefined; class?: string | undefined; aliases?: Record\u003Cstring, string> | undefined; iconifyApiOptions?: { url?: string | undefined; publicApiFallback?: boolean | undefined; } | undefined; }; }'.\r\n\r\n 10 const appConfig = useAppConfig() as {\r\n ~~~~~~~~~~~~~~~~~~~\r\n 11 nuxtIcon: {\r\n ~~~~~~~~~~~~~\r\n... \r\n 19 }\r\n ~~~\r\n 20 }\r\n ~\r\n\r\n node_modules/nuxt-icon/dist/runtime/Icon.vue:11:3\r\n 11 nuxtIcon: {\r\n ~~~~~~~~\r\n 'nuxtIcon' is declared here.\r\n\r\nnode_modules/nuxt-icon/dist/runtime/IconCSS.vue:5:19 - error TS2352: Conversion of type 'AppConfig' to type '{ nuxtIcon: { size?: string | undefined; class?: string | undefined; aliases?: Record\u003Cstring, string> | undefined; iconifyApiOptions?: { url?: string | undefined; publicApiFallback?: boolean | undefined; } | undefined; }; }' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.\r\n Property 'nuxtIcon' is missing in type 'AppConfig' but required in type '{ nuxtIcon: { size?: string | undefined; class?: string | undefined; aliases?: Record\u003Cstring, string> | undefined; iconifyApiOptions?: { url?: string | undefined; publicApiFallback?: boolean | undefined; } | undefined; }; }'.\r\n\r\n 5 const appConfig = useAppConfig() as {\r\n ~~~~~~~~~~~~~~~~~~~\r\n 6 nuxtIcon: {\r\n ~~~~~~~~~~~~~\r\n... \r\n 14 }\r\n ~~~\r\n 15 }\r\n ~\r\n\r\n node_modules/nuxt-icon/dist/runtime/IconCSS.vue:6:3\r\n 6 nuxtIcon: {\r\n ~~~~~~~~\r\n 'nuxtIcon' is declared here.\r\n\r\n\r\nFound 2 errors in 2 files.\r\n\r\nErrors Files\r\n 1 node_modules/nuxt-icon/dist/runtime/Icon.vue:10\r\n 1 node_modules/nuxt-icon/dist/runtime/IconCSS.vue:5\r\n\r\n```\r\n\r\n\r\n\r\nHere is the diff that solved my problem:\r\n\r\n```diff\r\ndiff --git a/node_modules/nuxt-icon/dist/runtime/Icon.vue b/node_modules/nuxt-icon/dist/runtime/Icon.vue\r\nindex 1546625..c170029 100644\r\n--- a/node_modules/nuxt-icon/dist/runtime/Icon.vue\r\n+++ b/node_modules/nuxt-icon/dist/runtime/Icon.vue\r\n@@ -4,10 +4,11 @@ import type { IconifyIcon } from '@iconify/vue'\r\n import { Icon as Iconify } from '@iconify/vue/dist/offline'\r\n import { loadIcon, addAPIProvider } from '@iconify/vue'\r\n import { ref, computed, watch } from 'vue'\r\n+// @ts-ignore\r\n import { useAppConfig, useNuxtApp, useState } from '#imports'\r\n \r\n const nuxtApp = useNuxtApp()\r\n-const appConfig = useAppConfig() as {\r\n+const appConfig = useAppConfig() as unknown as {\r\n nuxtIcon: {\r\n size?: string\r\n class?: string\r\ndiff --git a/node_modules/nuxt-icon/dist/runtime/IconCSS.vue b/node_modules/nuxt-icon/dist/runtime/IconCSS.vue\r\nindex fcef2d3..aee8c81 100644\r\n--- a/node_modules/nuxt-icon/dist/runtime/IconCSS.vue\r\n+++ b/node_modules/nuxt-icon/dist/runtime/IconCSS.vue\r\n@@ -1,8 +1,9 @@\r\n \u003Cscript setup lang=\"ts\">\r\n import { computed } from 'vue'\r\n+// @ts-ignore\r\n import { useAppConfig } from '#imports'\r\n \r\n-const appConfig = useAppConfig() as {\r\n+const appConfig = useAppConfig() as unknown as {\r\n nuxtIcon: {\r\n size?: string\r\n class?: string\r\n```\r\n\r\n\u003Cem>This issue body was [partially generated by patch-package](https://github.com/ds300/patch-package/issues/296).\u003C/em>\r\n",[],117,"icon","Typescript error converting AppConfig to a type with { nuxtConfig }","2023-11-17T00:29:41Z","https://github.com/nuxt/icon/issues/117",0.63508224,{"description":3041,"labels":3042,"number":3052,"owner":3025,"repository":3053,"state":3054,"title":3055,"updated_at":3056,"url":3057,"score":3058},"### Environment\n\n- Operating System: Linux\n- Node Version: v22.13.1\n- Nuxt Version: 3.16.0\n- CLI Version: 3.23.0\n- Nitro Version: 2.11.6\n- Package Manager: npm@11.1.0\n- Builder: -\n- User Config: app, build, colorMode, compatibilityDate, debug, devtools, future, hooks, i18n, icon, imports, modules, nitro, routeRules, runtimeConfig, security, ssr, sourcemap, css, telemetry, vite\n- Runtime Modules: @nuxt/eslint@1.2.0, @pinia/nuxt@0.10.1, @vueuse/nuxt@13.0.0, @nuxtjs/i18n@9.3.1, nuxt-security@2.2.0, @nuxt/ui@3.0.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.0.0\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/wonderful-violet-jrsqy9\n\n### Description\n\nI get a type error when using an array of strings for the `variant` key inside of `compoundVariants´:\n\n```ts\nexport default defineAppConfig({\n ui: {\n colors: {\n primary: \"green\",\n neutral: \"slate\",\n },\n select: {\n compoundVariants: [\n {\n color: \"primary\",\n variant: [\"outline\", \"subtle\"],\n class: \"data-[state='open']:ring\",\n },\n ],\n },\n },\n});\n```\n\n```\napp/app.config.ts:11:11 - error TS2322: Type 'string[]' is not assignable to type 'string'.\n\n11 variant: [\"outline\", \"subtle\"],\n ~~~~~~~\n```\n\nIt does work tho, so its only a type issue I think.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3043,3046,3049],{"name":3044,"color":3045},"bug","d73a4a",{"name":3047,"color":3048},"v3","49DCB8",{"name":3050,"color":3051},"triage","ffffff",3579,"ui","closed","Type error in app config `compoundVariants`","2025-05-02T15:06:25Z","https://github.com/nuxt/ui/issues/3579",0.61406434,{"description":3060,"labels":3061,"number":3066,"owner":3025,"repository":3025,"state":3054,"title":3067,"updated_at":3068,"url":3069,"score":3070},"### Environment\r\n\r\n- Operating System: `Darwin`\r\n- Node Version: `v16.14.0`\r\n- Nuxt Version: `3.0.0-rc.10`\r\n- Nitro Version: `0.5.3`\r\n- Package Manager: `unknown`\r\n- Builder: `vite`\r\n- User Config: `alias`, `css`, `runtimeConfig`, `build`, `modules`, `vite`, `typescript`\r\n- Runtime Modules: `@pinia/nuxt@0.4.1`\r\n- Build Modules: `-`\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/github-ea65tz?file=nuxt.config.ts&theme=light\r\n\r\n### Describe the bug\r\n\r\nA type error occurs on the `defineNuxtConfig` `vite` `server` prop\r\n\r\nIn the IDE: \r\n\u003Cimg width=\"970\" alt=\"image\" src=\"https://user-images.githubusercontent.com/27996386/190343670-28d3bfe7-7afb-466f-8435-381dae196d81.png\">\r\nCan anyone help with this?\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n_No response_",[3062,3065],{"name":3063,"color":3064},"3.x","29bc7f",{"name":3019,"color":3020},14917,"defineNuxtConfig vite server prop type error","2023-01-19T17:42:25Z","https://github.com/nuxt/nuxt/issues/14917",0.6145904,{"description":3072,"labels":3073,"number":3082,"owner":3025,"repository":3025,"state":3054,"title":3083,"updated_at":3084,"url":3085,"score":3086},"### Environment\n\n------------------------------\r\n- Operating System: Darwin\r\n- Node Version: v18.16.1\r\n- Nuxt Version: 3.6.1\r\n- Nitro Version: 2.5.1\r\n- Package Manager: yarn@3.5.1\r\n- Builder: vite\r\n- User Config: extends, debug, ssr, routeRules, experimental, runtimeConfig, typescript, css, i18n, modules, alias, vite\r\n- Runtime Modules: nuxt-icon@^0.4.1, @nuxtjs/i18n@8.0.0-beta.12, @vueuse/nuxt@10.2.0, @nuxt/devtools@0.6.3, @nuxtjs/eslint-module@^4.1.0, nuxt-vitest@^0.8.5\r\n- Build Modules: -\r\n------------------------------\n\n### Reproduction\n\nAdd the nuxt-icon module with typecheck enabled.\n\n### Describe the bug\n\nEssentially a regression on: https://github.com/nuxt/nuxt/pull/20526.\r\n\r\nAs noted here: https://github.com/nuxt-modules/icon/issues/86.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3074,3077,3078,3079],{"name":3075,"color":3076},"types","2875C3",{"name":3063,"color":3064},{"name":3019,"color":3020},{"name":3080,"color":3081},"needs reproduction","FBCA04",21816,"Nuxt `3.6.1` introduces a regression on `AppConfig` types:","2023-09-13T13:03:57Z","https://github.com/nuxt/nuxt/issues/21816",0.62373304,{"description":3088,"labels":3089,"number":3092,"owner":3025,"repository":3025,"state":3054,"title":3093,"updated_at":3094,"url":3095,"score":3096},"### Environment\n\nWorking directory: /home/projects/github-xfi7iq 5:27:10 PM\r\nNuxt project info: 5:27:10 PM\r\n\r\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.18.0\r\n- Nuxt Version: 3.10.3\r\n- CLI Version: 3.10.1\r\n- Nitro Version: 2.9.3\r\n- Package Manager: npm@10.2.3\r\n- Builder: -\r\n- User Config: devtools, runtimeConfig\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n------------------------------\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-xfi7iq?file=utils%2Fconfig.ts\r\n\r\n\r\n\r\n`app.config.ts`\r\n```javascript\r\nexport default defineAppConfig({\r\n foo: 'bar',\r\n});\r\n\r\n```\r\n\r\n`utils/config.ts`\r\n```javascript\r\nconst appConfig = useAppConfig();\r\nappConfig.foo // 👈 no typing\r\n```\n\n### Describe the bug\n\nA typed app config is expected from `useAppConfig()`, but unfortunately it does not work.\r\n\r\nFrom the docs\r\n\"Nuxt tries to automatically generate a TypeScript interface from provided app config so you won't have to type it yourself.\"\r\n\r\n\r\n\n\n### Additional context\n\nTooltip for app config variable does not show type string:\r\n\r\n\r\nTo prove typing works, tooltip for runtime config does show correct typing:\r\n\r\n\r\n\n\n### Logs\n\n_No response_",[3090,3091],{"name":3063,"color":3064},{"name":3019,"color":3020},26201,"app.config.ts typing fails","2024-03-11T22:45:24Z","https://github.com/nuxt/nuxt/issues/26201",0.6245597,{"description":3098,"labels":3099,"number":3105,"owner":3025,"repository":3025,"state":3054,"title":3106,"updated_at":3107,"url":3108,"score":3109},"### Environment\r\n\r\n- Operating System: Linux\r\n- Node Version: v16.20.0\r\n- Nuxt Version: 3.7.3\r\n- CLI Version: 3.8.3\r\n- Nitro Version: 2.6.3\r\n- Package Manager: npm@9.4.2\r\n- Builder: -\r\n- User Config: typescript\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n\r\n### Reproduction\r\n\r\nNuxt 3.7.2- works\r\nhttps://stackblitz.com/edit/github-ajlxyx-zupgpe?file=package.json,index.d.ts\r\n\r\nNuxt 3.7.3 - doesn't work\r\nhttps://stackblitz.com/edit/github-ajlxyx?file=app.config.ts,app.vue,package.json\r\n\r\n### Describe the bug\r\n\r\nTry to run `npx nuxi typecheck`. `useAppConfig()` doesn't get types from `index.d.ts` in Nuxt 3.7.3.\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n_No response_",[3100,3101,3102,3104],{"name":3075,"color":3076},{"name":3019,"color":3020},{"name":3103,"color":3081},"🔨 p3-minor",{"name":3022,"color":3023},23207,"Manually typing App Config doesn't work","2025-05-29T21:32:27Z","https://github.com/nuxt/nuxt/issues/23207",0.62630564,{"description":3111,"labels":3112,"number":3119,"owner":3025,"repository":3025,"state":3054,"title":3120,"updated_at":3121,"url":3122,"score":3123},"### Environment\r\n\r\n```\r\nnpx nuxi info\r\nNuxi 3.2.0 19:47:48\r\n 19:47:50\r\nRootDir: /home/projects/github-z5ryjg 19:47:50\r\nNuxt project info: 19:47:50\r\n\r\n------------------------------\r\n- Operating System: `Linux`\r\n- Node Version: `v16.14.2`\r\n- Nuxt Version: `3.2.0`\r\n- Nitro Version: `2.2.1`\r\n- Package Manager: `npm@7.17.0`\r\n- Builder: `vite`\r\n- User Config: `runtimeConfig`\r\n- Runtime Modules: `-`\r\n- Build Modules: `-`\r\n------------------------------\r\n```\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/github-z5ryjg?file=nuxt.config.ts\r\n\r\n### Describe the bug\r\n\r\nWhen using arrays in `runtimeConfig` (private and public) of `nuxt.config.ts`, TypeScript throws nonsensical errors for the array's elements: `Type 'string' is not assignable to type 'never'.` or `Type 'string' is not assignable to type 'undefined'`.\r\n\r\nWeirdly, the automatically generated types in `.nuxt/types/schema.d.ts` are correct. Manually defining the types doesn't help.\r\n\r\nSince this error also comes up during `nuxt typecheck`, it caused our CI pipeline to fail and we had to disable typechecks for `nuxt.config.ts`.\r\n\r\n### Additional context\r\n\r\nThis error occurred after upgrading from Nuxt 3.0.0 to 3.2.0.\r\n\r\n### Logs\r\n\r\n_No response_",[3113,3114,3115,3116],{"name":3075,"color":3076},{"name":3063,"color":3064},{"name":3044,"color":3045},{"name":3117,"color":3118},"❗ p4-important","D93F0B",18925,"Type errors when using arrays in runtimeConfig","2023-02-10T07:50:30Z","https://github.com/nuxt/nuxt/issues/18925",0.6285867,{"description":3125,"labels":3126,"number":3127,"owner":3025,"repository":3035,"state":3054,"title":3128,"updated_at":3129,"url":3130,"score":3131},"##error message\r\n\r\n ERROR(vue-tsc) Property 'nuxtIcon' does not exist on type 'AppConfig'.\r\nconst props = defineProps({\r\n name: {\r\n type: String as PropType\u003Ckeyof AppConfig['nuxtIcon']['aliases'] | (string & {})>,\r\n ^^^^^^^^^^\r\n required: true\r\n },\r\n\r\n##code\r\n\r\n```ts\r\n\r\nexport default defineNuxtConfig({\r\n srcDir: 'src',\r\n ssr: false,\r\n typescript: {\r\n typeCheck: true\r\n },\r\n modules: ['@nuxtjs/tailwindcss', 'nuxt-icon']\r\n\r\n})\r\n```",[],46,"Error something on nuxt 3.1.0 - ERROR(vue-tsc) Property 'nuxtIcon' does not exist on type 'AppConfig'.","2023-01-27T14:11:31Z","https://github.com/nuxt/icon/issues/46",0.6305979,{"description":3133,"labels":3134,"number":3140,"owner":3025,"repository":3053,"state":3054,"title":3141,"updated_at":3142,"url":3143,"score":3144},"### Environment\n\n- Operating System: Darwin\n- Node Version: v20.12.0\n- Nuxt Version: - (using vue@latest)\n- CLI Version: 3.15.0\n- Nitro Version: -\n- Package Manager: pnpm@9.0.4\n- Builder: -\n- User Config: -\n- Runtime Modules: -\n- Build Modules: -\n\n### Version\n\nv3.0.0-alpha.8\n\n### Reproduction\n\nhttps://github.com/zugende/nuxt-ui-type-error-repro\n\n### Description\n\nWhen creating a fresh standalone Vue app using `pnpm create vue@latest` and then installing nuxt/ui by following the instructions here: https://ui3.nuxt.dev/getting-started/installation/vue one get type errors during the build process running `pnpm build`.\n\n👀 Update 15. Nov: Workaround is to disable type-check in your build command\n``` bash\n❌ \"build\": \"run-p type-check \\\"build-only {@}\\\" --\",\n✅ \"build-only\": \"vite build\",\n```\n\n### Additional context\n\n_No response_\n\n### Logs\n\n// more than 160 errors (shortened)\n\nnode_modules/.pnpm/@nuxt+ui@3.0.0-alpha.8_@babel+parser@7.26.2_embla-carousel@8.3.1_rollup@4.24.4_typescript@5.6_yljlai3w6pxxgcxew5prmihdom/node_modules/@nuxt/ui/dist/runtime/components/Tabs.vue:5:24 - error TS2307: Cannot find module '#build/app.config' or its corresponding type declarations.\n\n5 import _appConfig from '#build/app.config'\n ~~~~~~~~~~~~~~~~~~~\n\nnode_modules/.pnpm/@nuxt+ui@3.0.0-alpha.8_@babel+parser@7.26.2_embla-carousel@8.3.1_rollup@4.24.4_typescript@5.6_yljlai3w6pxxgcxew5prmihdom/node_modules/@nuxt/ui/dist/runtime/components/Textarea.vue:4:24 - error TS2307: Cannot find module '#build/app.config' or its corresponding type declarations.\n\n4 import _appConfig from '#build/app.config'\n ~~~~~~~~~~~~~~~~~~~\n\n[.....]\n\nFound 165 errors.",[3135,3136,3137],{"name":3044,"color":3045},{"name":3047,"color":3048},{"name":3138,"color":3139},"vue","42b883",2560,"Vue Vite plugin is causing type errors","2025-05-06T16:09:54Z","https://github.com/nuxt/ui/issues/2560",0.6312111,["Reactive",3146],{},["Set"],["ShallowReactive",3149],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fmFi-pem5DuHm-a3Z6hx6AIjHe9czGfP2zh1wdRFgT1k":-1},"/nuxt/nuxt/20040"]