\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.6228295,{"description":3032,"labels":3033,"number":3046,"owner":3025,"repository":3025,"state":3026,"title":3047,"updated_at":3048,"url":3049,"score":3050},"### Environment\n\n- Operating System: `Linux`\r\n- Node Version: `v16.14.2`\r\n- Nuxt Version: `3.0.0`\r\n- Nitro Version: `1.0.0`\r\n- Package Manager: `npm@7.17.0`\r\n- Builder: `vite`\r\n- User Config: `-`\r\n- Runtime Modules: `-`\r\n- Build Modules: `-`\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-stl7dc?file=nuxt.config.ts\n\n### Describe the bug\n\nNuxt generates invalid types for an array of objects inside `runtimeConfig`\r\nWhen we set `typeCheck: true` and would like to return the config in some function the vue-tsc throws an error.\r\n\r\nI was also trying to manually type the runtimeConfig according to the instructions but looks like typescript doesn't care about it.\r\nhttps://nuxt.com/docs/guide/going-further/runtime-config#manually-typing-runtime-config\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3034,3037,3040,3043],{"name":3035,"color":3036},"types","2875C3",{"name":3038,"color":3039},"workaround available","11376d",{"name":3041,"color":3042},"bug","d73a4a",{"name":3044,"color":3045},"upstream","E8A36D",12400,"Nuxt generates invalid types for an array of objects in runtimeConfig - nuxt.config.ts","2025-01-18T13:52:52Z","https://github.com/nuxt/nuxt/issues/12400",0.640747,{"description":3052,"labels":3053,"number":3061,"owner":3025,"repository":3062,"state":3026,"title":3063,"updated_at":3064,"url":3065,"score":3066},"### Environment\n\n- Operating System: Darwin\n- Node Version: v23.11.0\n- Nuxt Version: 3.17.3\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.12\n- Package Manager: npm@10.9.2\n- Builder: -\n- User Config: devtools, typescript, css, compatibilityDate, devServer, vite, runtimeConfig, app, ui, scripts, modules, sentry, sourcemap\n- Runtime Modules: @nuxt/ui@3.1.2, @pinia/nuxt@0.11.0, pinia-plugin-persistedstate/nuxt@4.3.0, @sentry/nuxt/module@9.19.0, @nuxt/scripts@0.11.7, @nuxt/eslint@1.4.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.1.2\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/r7ryl3\n\n### Description\n\nI recently upgrade to NuxtUI 3.1.2 (from 3.0.1) and It's impossible (or I don't know) how to deal with custom type for `InputMenu`, I got some types issues on `label-key`, `v-model`, `items`, `slots` as you can see in my reproduction.\n\n### Additional context\n\n\n\n### Logs\n\n```shell-script\n\n```",[3054,3055,3058],{"name":3041,"color":3042},{"name":3056,"color":3057},"v3","49DCB8",{"name":3059,"color":3060},"triage","ffffff",4182,"ui","Custom type with InputMenu","2025-05-19T12:22:28Z","https://github.com/nuxt/ui/issues/4182",0.64426374,{"description":3068,"labels":3069,"number":3070,"owner":3025,"repository":3071,"state":3026,"title":3072,"updated_at":3073,"url":3074,"score":3075},"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.647621,{"description":3077,"labels":3078,"number":3087,"owner":3025,"repository":3025,"state":3088,"title":3089,"updated_at":3090,"url":3091,"score":3092},"### 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_",[3079,3080,3083,3084],{"name":3035,"color":3036},{"name":3081,"color":3082},"3.x","29bc7f",{"name":3041,"color":3042},{"name":3085,"color":3086},"❗ p4-important","D93F0B",18925,"closed","Type errors when using arrays in runtimeConfig","2023-02-10T07:50:30Z","https://github.com/nuxt/nuxt/issues/18925",0.6154996,{"description":3094,"labels":3095,"number":3102,"owner":3025,"repository":3025,"state":3088,"title":3103,"updated_at":3104,"url":3105,"score":3106},"### Environment\r\n\r\nOperating System: Windows_NT\r\nNode Version: v18.0.0\r\nNuxt Version: 3.3.3\r\nNitro Version: 2.3.2\r\nPackage Manager: npm@9.4.2\r\nBuilder: vite\r\n\r\n### Reproduction\r\n\r\nhttps://github.com/iabirkhan/Nuxt-3-Minimal\r\n\r\n### Describe the bug\r\n\r\nwith default nuxt 3.3.3 setup or upgraded version shows type error in nuxt,config.ts. \r\n\r\n- *** This type error shows on minimal setup:\r\n\r\nArgument of type '{ app: { head: { charset: string; viewport: string; }; }; }' is not assignable to parameter of type 'NuxtConfig'.\r\n Object literal may only specify known properties, and 'app' does not exist in type 'NuxtConfig'.ts(2345)\r\n\r\n- *** Extending config also shows type error on plugins, css, build, vite\r\n\r\n```\r\nexport default defineNuxtConfig({\r\n// app, plugins, css, build, vite not working\r\n app: {\r\n head: {\r\n title: \"Nuxt 3 App\",\r\n charset: \"utf-8\",\r\n viewport: \"width=device-width, initial-scale=2\",\r\n },\r\n }, // if app config removed plugins dosen't work\r\n plugins: [], // shows error one after another\r\n css: [],\r\n build: {},\r\n vite: {},\r\n// modules, typescript working\r\n modules: [],\r\n typescript: {\r\n strict: true,\r\n },\r\n});\r\n```\r\n\r\nHopefully explained the problem clearly, please check. \r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n_No response_",[3096,3097,3098,3099],{"name":3035,"color":3036},{"name":3081,"color":3082},{"name":3019,"color":3020},{"name":3100,"color":3101},"needs reproduction","FBCA04",20040,"shows type error on nuxt.config.ts for app meta, plugins, css, build, vite","2023-12-05T07:21:45Z","https://github.com/nuxt/nuxt/issues/20040",0.6281664,{"description":3108,"labels":3109,"number":3114,"owner":3025,"repository":3025,"state":3088,"title":3115,"updated_at":3116,"url":3117,"score":3118},"### 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_",[3110,3111,3112,3113],{"name":3035,"color":3036},{"name":3081,"color":3082},{"name":3019,"color":3020},{"name":3100,"color":3101},21816,"Nuxt `3.6.1` introduces a regression on `AppConfig` types:","2023-09-13T13:03:57Z","https://github.com/nuxt/nuxt/issues/21816",0.6317938,{"labels":3120,"number":3126,"owner":3025,"repository":3025,"state":3088,"title":3127,"updated_at":3128,"url":3129,"score":3130},[3121,3122,3123],{"name":3035,"color":3036},{"name":3019,"color":3020},{"name":3124,"color":3125},"2.x","d4c5f9",7765,"Nuxt Build Error , when I use Typescript and ElementUI","2023-01-22T15:36:04Z","https://github.com/nuxt/nuxt/issues/7765",0.63706404,{"description":3132,"labels":3133,"number":3138,"owner":3025,"repository":3025,"state":3088,"title":3139,"updated_at":3140,"url":3141,"score":3142},"### Environment\n\n- Operating System: Linux\r\n- Node Version: v18.18.0\r\n- Nuxt Version: 3.8.0\r\n- CLI Version: 3.9.1\r\n- Nitro Version: 2.7.0\r\n- Package Manager: npm@9.4.2\r\n- Builder: -\r\n- User Config: extends\r\n- Runtime Modules: -\r\n- Build Modules: -\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-bnn6ap?file=nuxt.config.ts\n\n### Describe the bug\n\nUpgrading to Nuxt 3.8 leads to a type issue for me: the `extends` key in `nuxt.config.ts` seems to not accept an array of strings anymore.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3134,3135,3136,3137],{"name":3035,"color":3036},{"name":3081,"color":3082},{"name":3038,"color":3039},{"name":3041,"color":3042},23791,"fix: type error on `extends` in v3.8","2023-10-20T15:23:37Z","https://github.com/nuxt/nuxt/issues/23791",0.6376275,{"description":3144,"labels":3145,"number":3148,"owner":3025,"repository":3062,"state":3088,"title":3149,"updated_at":3150,"url":3151,"score":3152},"### Environment\n\n- Operating System: Linux\n- Node Version: v22.14.0\n- Nuxt Version: 3.17.1\n- CLI Version: 3.25.0\n- Nitro Version: 2.11.11\n- Package Manager: npm@10.9.2\n- Builder: -\n- User Config: app, build, colorMode, compatibilityDate, debug, devtools, fonts, future, hooks, i18n, icon, imports, modules, nitro, routeRules, runtimeConfig, security, ssr, sourcemap, css, telemetry, vite\n- Runtime Modules: @nuxt/eslint@1.3.0, @pinia/nuxt@0.11.0, @vueuse/nuxt@13.1.0, @nuxtjs/i18n@9.5.3, nuxt-security@2.2.0, @nuxt/ui@3.1.0\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.1.0\n\n### Reproduction\n\nhttps://codesandbox.io/p/devbox/epic-smoke-95wysw?file=%2Fapp%2Fpages%2Findex.vue\n\n### Description\n\nUsing the `@update:model-value` event handler produces type errors with the Select component, starting from nuxt-ui v3.1.0 (v3.0.2 works fine).\n\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\nType 'boolean | AcceptableValue | undefined' is not assignable to type '\"yes\" | \"no\"'.\n Type 'undefined' is not assignable to type '\"yes\" | \"no\"'.ts-plugin(2322)\n```",[3146,3147],{"name":3041,"color":3042},{"name":3056,"color":3057},4019,"Type Issue with Select Component","2025-04-29T15:39:56Z","https://github.com/nuxt/ui/issues/4019",0.6395618,["Reactive",3154],{},["Set"],["ShallowReactive",3157],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fLfj3QWhQZ4lUOydvn6d0PU-kFNpa4oBHV5cEzks9J6M":-1},"/nuxt/ui/3579"]