\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.6063065,{"description":3032,"labels":3033,"number":3035,"owner":3025,"repository":3025,"state":3026,"title":3036,"updated_at":3037,"url":3038,"score":3039},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v22.13.1\n- Nuxt Version: 3.15.4\n- CLI Version: 3.21.1\n- Nitro Version: 2.10.4\n- Package Manager: bun@1.2.2\n- Builder: -\n- User Config: compatibilityDate, devtools, extends\n- Runtime Modules: -\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\n## The layer\n\n`nuxt.config.ts`\n```ts\nimport { createResolver } from '@nuxt/kit';\n\nconst { resolve } = createResolver(import.meta.url);\n\nexport default defineNuxtConfig({\n compatibilityDate: '2024-11-01',\n devtools: { enabled: true },\n alias: {\n '@base': resolve('./'),\n },\n})\n```\n\n`components/Button.vue`\n```vue\n\u003Cscript lang=\"ts\">\nimport type { ButtonHTMLAttributes } from 'vue';\n\n// NOTE: relative import works...\nimport type { Theme } from '../ui/createTheme'; // WORKS\n\n// BUT: using alias causes issues with the type inference (somehow).\n// import type { Theme } from '@base/ui/createTheme'; // FAILS WHEN USING REMOTE LAYER SOURCE\n\nexport interface ButtonProps extends Theme {\n type?: ButtonHTMLAttributes['type'];\n disabled?: boolean;\n}\n\u003C/script>\n\n\u003Cscript lang=\"ts\" setup>\nwithDefaults(defineProps\u003CButtonProps>(), {\n type: 'button',\n});\n\u003C/script>\n```\n\n`ui/createTheme.ts`\n```ts\nexport interface Theme {\n theme?: string;\n}\n```\n\n## The app\n\n`nuxt.config.ts`\n```ts\n// https://nuxt.com/docs/api/configuration/nuxt-config\nexport default defineNuxtConfig({\n compatibilityDate: '2024-11-01',\n devtools: { enabled: true },\n extends: [\n // ['../nuxt-layer-test-layer', { install: true }],\n ['github:leeovery/nuxt-layer-test-layer', { install: true }]\n ],\n});\n```\n\n`pages/test.vue`\n```vue\n\u003Ctemplate>\n \u003CButton type=\"submit\">hello\u003C/Button>\n\u003C/template>\n```\n\nI have setup two simple repos.\n\nThe app: https://github.com/leeovery/nuxt-layer-test-app\nThe layer: https://github.com/leeovery/nuxt-layer-test-layer\n\nIf you extend from the layer in the app using the local version, everything works fine, whether you use the alias or a relative path to import the type.\n\nHowever, if you import the layer using github (which you can do in the app's nuxt.config.ts), then you will see that using the aliases causes the Vue error regarding failing to resolve base type. If you change the import of the theme type in the Button comp. to be a relative path, then all works as expected.\n\n### Describe the bug\n\nThe issue appears to be when:\n\n* Using a Nuxt path alias to reference the layer's root dirs,\n* then importing a type using that alias,\n* then extending from that type to create your prop definition,\n* and finally \"using\" the layer via a remote source. \n\nThen in the app (extending the later) you will get this overlay error:\n\n\n\nAll these things need to be true (it seems) for this bug to occur.\n\nAt this stage Im not 100% sure this is a bug or a known limitation. But either way hopefully this will help others later who run into the same issue.\n\nAre we meant to be using aliases like this? Is it a bug?\n\nThanks!!\nLee\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3034],{"name":3019,"color":3020},30896,"Nuxt layer - issues with extending type when using nuxt alias and using remote layer source","2025-03-11T06:37:47Z","https://github.com/nuxt/nuxt/issues/30896",0.6504247,{"description":3041,"labels":3042,"number":3047,"owner":3025,"repository":3025,"state":3048,"title":3049,"updated_at":3050,"url":3051,"score":3052},"### 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_",[3043,3046],{"name":3044,"color":3045},"3.x","29bc7f",{"name":3019,"color":3020},26201,"closed","app.config.ts typing fails","2024-03-11T22:45:24Z","https://github.com/nuxt/nuxt/issues/26201",0.60251266,{"description":3054,"labels":3055,"number":3061,"owner":3025,"repository":3025,"state":3048,"title":3062,"updated_at":3063,"url":3064,"score":3065},"### Environment\r\n\r\n- Operating System: `Darwin`\r\n- Node Version: `v18.8.0`\r\n- Nuxt Version: `3.1.1`\r\n- Nitro Version: `2.1.0`\r\n- Package Manager: `npm@8.18.0`\r\n- Builder: `vite`\r\n- User Config: `-`\r\n- Runtime Modules: `-`\r\n- Build Modules: `-`\r\n\r\n\r\n### Reproduction\r\n\r\n*\r\n\r\n### Describe the bug\r\n\r\nAfter updating from 3.0.0 to 3.1.1\r\nI'm getting errors from vue-tsc like Property 'x' does not exist on type 'AppConfig' \r\n\r\nI was trying to declare interface AppConfigInput in index.d.ts like here\r\nhttps://nuxt.com/docs/guide/directory-structure/app-config#manually-typing-app-config\r\nI also added to nuxt.config.ts\r\nexperimental: { configSchema: true, },\r\n\r\ninsideapp.config.ts I have an empty object.\r\nexport default defineAppConfig({})\r\nI'm setting appConfig dynamically based on process.env (in nuxt.config.ts), ofc it has valid types there\r\nBut it should be merged anyway.\r\n\r\n### Additional context\r\n\r\nhttps://github.com/nuxt/nuxt/pull/18410\r\n\r\n### Logs\r\n\r\n_No response_",[3056,3057,3058],{"name":3044,"color":3045},{"name":3019,"color":3020},{"name":3059,"color":3060},"needs reproduction","FBCA04",18555,"3.1.1 - Typing AppConfig stopped work after upgrade","2023-03-20T15:38:42Z","https://github.com/nuxt/nuxt/issues/18555",0.62314147,{"description":3067,"labels":3068,"number":3074,"owner":3025,"repository":3025,"state":3048,"title":3075,"updated_at":3076,"url":3077,"score":3078},"### Environment\n\n```\n- Operating System: Linux\n- Node Version: v20.19.1\n- Nuxt Version: 4.0.1\n- CLI Version: 3.26.4\n- Nitro Version: 2.12.3\n- Package Manager: pnpm@8.15.6\n- Builder: -\n- User Config: compatibilityDate, devtools\n- Runtime Modules: -\n- Build Modules: -\n```\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-7amubixz?file=app%2Findex.d.ts\n\n### Describe the bug\n\nIn Nuxt 4, defineAppConfig() accepts any input, which results in the loss of type checking and autocomplete.\nIt seems that in this commit\n[69345c32a5b828c0a5ff141770d6d9d51f30d5b2](https://github.com/nuxt/nuxt/commit/69345c32a5b828c0a5ff141770d6d9d51f30d5b2#diff-2176c7ab69dcd5ffc94e79963693b007471788f25591aeb72e7533240ebad2c2R454)\nthe way .nuxt/types/app.config.d.ts is generated has changed — and now the defineAppConfig function accepts any type.\nWhen I manually removed this generated part, type hints and validation started working correctly again.\n\n### Additional context\n\n### With default generated `.nuxt/types/app.config.d.ts`\n\u003Cimg width=\"832\" height=\"523\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/445f8c71-b550-47a0-a6e0-c279c4b0a705\" />\n\n### Modified `.nuxt/types/app.config.d.ts`\n\u003Cimg width=\"841\" height=\"452\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/9cfe6d9d-9959-47ff-bfc3-31e7f24585b5\" />\n\n### Logs\n\n```shell-script\n\n```",[3069,3072],{"name":3070,"color":3071},"types","2875C3",{"name":3073,"color":3060},"🔨 p3-minor",32745,"Custom defineAppConfig() types ignored, no type validation or hints","2025-07-25T13:14:14Z","https://github.com/nuxt/nuxt/issues/32745",0.62422544,{"description":3080,"labels":3081,"number":3083,"owner":3025,"repository":3025,"state":3048,"title":3084,"updated_at":3085,"url":3086,"score":3087},"### Environment\n\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.18.0\r\n- Nuxt Version: 3.11.2\r\n- CLI Version: 3.11.1\r\n- Nitro Version: -\r\n- Package Manager: pnpm@8.15.3\r\n- Builder: -\r\n- User Config: devtools, modules, ui, colorMode\r\n- Runtime Modules: @nuxt/ui@2.15.2\r\n- Build Modules: -\r\n------------------------------\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-yurofm?file=package.json,nuxt.config.ts\n\n### Describe the bug\n\nWhen using a module, for example `@nuxt/ui`, and installing dependencies with `pnpm`, the extended type for NuxtConfig is not being picked up by Typescript (both `tsc` and `vue-tsc`). This leads to a type error in `nuxt.config.ts`: \r\n```\r\nnuxt.config.ts:5:3 - error TS2353: Object literal may only specify known properties, and 'ui' does not exist in type 'InputConfig\u003CNuxtConfig, ConfigLayerMeta>'.\r\n\r\n5 ui: {\r\n ~~\r\n\r\nFound 1 error in nuxt.config.ts:5\r\n```\r\n\r\nAdditionally, I found that:\r\n- the extended interface is present in `.nuxt/schema.d.ts`\r\n- removing `node_modules` and reinstalling with `npm` will fix the error\r\n- type casting the input parameter of `defineNuxtConfig` as `InputConfig\u003CNuxtConfig>` will circumvent the issue, but requires me to add `c12` as a dependency\n\n### Additional context\n\nThis is my first project using `pnpm`, but I decided to give it a go after I saw `nuxt` itself uses it. Because of that I was also surprised I did not find any other issues mentioning this. So perhaps this is a misconfiguration on my end, and people here know the answer straight away. But I decided to open a bug since I could easily reproduce the issue with Stackblitz.\n\n### Logs\n\n_No response_",[3082],{"name":3019,"color":3020},26921,"Typescript not picking up extended NuxtConfig interface when installing with pnpm","2024-09-04T14:52:29Z","https://github.com/nuxt/nuxt/issues/26921",0.6321863,{"description":3089,"labels":3090,"number":3093,"owner":3025,"repository":3025,"state":3048,"title":3094,"updated_at":3095,"url":3096,"score":3097},"### Environment\n\n- Operating System: Darwin\n- Node Version: v22.14.0\n- Nuxt Version: 3.16.1\n- CLI Version: 3.23.1\n- Nitro Version: 2.11.7\n- Package Manager: pnpm@8.9.0\n- Builder: -\n- User Config: compatibilityDate, devtools\n- Runtime Modules: -\n- Build Modules: -\n\n### Reproduction\n\nhttps://github.com/larbish/merge-config-types\n\n\n\n### Describe the bug\n\nJust install and run the project then go back to your editor on the `app.vue` file and constat type is wrong for `useAppConfig().seo.description` although it is defined in `app.config.ts`\n\n\n### Additional context\n\n`nuxt.schema.ts` type is overriding user config defined in `app.config.ts` for nested objects.\n\nA deep merge of types is happening [here](https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/core/templates.ts#L442) but it seems that it's not merging nested children, only `CustomAppConfig` values are applied for nested keys.\n\nIt results that, in my exemple `seo` only contains the `title` key defined in `nuxt.schema` and not `description` only defined in `app.config`.\n\nBoth should be defined. \n\nI tried the corresponding code in the [typescript playground](https://www.typescriptlang.org/play/?#code/C4TwDgpgBAkgzgQQHYgDwBUB8UC8UAMUEAHsBEgCZxQCMUAZFOlAPxTABOArtAFxQAzAIYAbOBADcAKCmhIUALIQOAcwgUEYMAGEA9kgEBLFagBKEOLpEA3dUVLkqUcwGNdHCqjidDSFQBooLiQAayRdAHckTEDtLm9dAFt7MkpqV3dPbw5fAKDQ8KjMbDwAbykoKABtAGkoXygQiBBdASgACnNLGztGOITEgEoAXX46klSnJpa2-uAkisrWfLDIpBTHajmk2uHFpeWuq1sKXf2l-nhkNG3E3ewJzfZuCHODtiOe05q9g4P+W67DZpZwQNweLw+PyBIQoTBvP6VD4WY7qIGPEEZCHZXIwuEIxFIxTKNQaLR6AzGMwor67WLxeZ3H7wwmE-gAUWILhEXAoEFQgJ+gWCfKMSHULNZFygnO5vP5guGwsoEDFEvO-E+JzOAF9pLJwNAtepNDp9EYVLgoOUDuJdPwbYTgIZgCIICx+Di-ASoHy4C4cmBnfoPVAvSpzjqpHqZHJoLdTRSLVbHZU7Q6fc7Xe7PVCIwcozGDfJE+bjFalKoTeSyyZjWSzZS8gma03MPq3EhvFAhK2LfxS02U2GIPbrTqoFGpJ3u1m3Vbe42LQA6O3LuevGfAX0WAOGIOGfQLvvGVej5d+vcH-QyIA) and it works as expected. \n\n\n### Logs\n\n```shell-script\n\n```",[3091,3092],{"name":3070,"color":3071},{"name":3019,"color":3020},31492,"Merge of `app.config.ts` types and `nuxt.schema.ts` types is failing for nested object","2025-03-24T16:24:42Z","https://github.com/nuxt/nuxt/issues/31492",0.6347695,{"labels":3099,"number":3106,"owner":3025,"repository":3025,"state":3048,"title":3107,"updated_at":3108,"url":3109,"score":3110},[3100,3101,3102,3103],{"name":3044,"color":3045},{"name":3019,"color":3020},{"name":3059,"color":3060},{"name":3104,"color":3105},"layers","006B75",25230,"Wrong tsconfig when operating in monorepo","2024-05-24T14:00:23Z","https://github.com/nuxt/nuxt/issues/25230",0.63747513,{"description":3112,"labels":3113,"number":3118,"owner":3025,"repository":3025,"state":3048,"title":3119,"updated_at":3120,"url":3121,"score":3122},"### 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_",[3114,3115,3116,3117],{"name":3070,"color":3071},{"name":3019,"color":3020},{"name":3073,"color":3060},{"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.6387078,{"description":3124,"labels":3125,"number":3132,"owner":3025,"repository":3025,"state":3048,"title":3133,"updated_at":3134,"url":3135,"score":3136},"### Environment\n\n- Operating System: Linux\r\n- Node Version: v20.2.0\r\n- Nuxt Version: 3.8.2\r\n- CLI Version: 3.10.0\r\n- Nitro Version: 2.8.1\r\n- Package Manager: pnpm@8.12.1\r\n- Builder: -\r\n- User Config: modules, devtools, devServer, router, i18n, runtimeConfig, veeValidate, googleFonts\r\n- Runtime Modules: @nuxtjs/tailwindcss@6.10.1, nuxt-headlessui@1.1.4, @nuxtjs/i18n@8.0.0-rc.5, @vueuse/nuxt@10.7.0, nuxt-icon@0.5.0, @vee-validate/nuxt@4.12.3, @nuxtjs/google-fonts@3.1.3\r\n- Build Modules: -\n\n### Reproduction\n\n1. Create a new Nuxt app (`nuxi init`)\r\n2. Add `app.config.ts`\r\n3. Run `nuxi prepare`\r\n4. Look at `.nuxt/types/app.config.d.ts` and `.nuxt/types/nitro-config.d.ts`. Both import `app.config` from an absolute path.\n\n### Describe the bug\n\nDeveloping a Nuxt app inside a Docker container makes `AppConfig` type not work in VS Code because the generated types import `app.config` from an absolute path.\r\n\r\nThe generated type is in `.nuxt/types/app.config.d.ts`\r\n```ts\r\n// .nuxt/types/app.config.d.ts\r\nimport cfg0 from \"/nuxt-app/app.config\"\r\n// should be...\r\nimport cfg0 from \"../../app.config\";\r\n```\r\n\r\nThe same absolute import is also in `.nuxt/types/nitro-config.d.ts`\r\n```ts\r\n// `.nuxt/types/nitro-config.d.ts`\r\nimport type { default as appConfig0 } from \"/nuxt-app/app.config\";\r\n// should be...\r\nimport type { default as appConfig0 } from \"../../app.config\";\r\n```\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3126,3127,3128,3131],{"name":3070,"color":3071},{"name":3044,"color":3045},{"name":3129,"color":3130},"bug","d73a4a",{"name":3073,"color":3060},24869,"Generated AppConfig type imports from absolute path instead of relative","2024-05-24T21:39:35Z","https://github.com/nuxt/nuxt/issues/24869",0.63881934,["Reactive",3138],{},["Set"],["ShallowReactive",3141],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$flrIhMgCeQ2f7hbmi1_ZV7jpSV9ooX_hOZNcBC_e4qvk":-1},"/nuxt/nuxt/26116"]