\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```",[3042,3045],{"name":3043,"color":3044},"pending triage","E99695",{"name":3046,"color":3047},"possible regression","B90A42",32768,"useAppConfig lose types from nuxt schema with new tsconfig","2025-07-25T22:51:01Z","https://github.com/nuxt/nuxt/issues/32768",0.6558412,{"description":3054,"labels":3055,"number":3057,"owner":3033,"repository":3033,"state":3034,"title":3058,"updated_at":3059,"url":3060,"score":3061},"### Environment\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: npm@10.8.2\n- Builder: -\n- User Config: compatibilityDate, devtools\n- Runtime Modules: -\n- Build Modules: -\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-rql8bhyh?file=shared%2Futils%2Futil.ts\n\nRun `npm install && npm run typecheck`.\n\n### Describe the bug\n\nWith the new Typescript project references in `tsconfig.json`, utils in the shared directory seemingly don't know about shared utils according to the typecheck. There was no error with the `tsconfig.json` that just extended `./.nuxt/tsconfig.json`.\n\n### Additional context\n\nI found two similar issues that may report the same issue, but their descriptions don't allow me to fully confirm this as they're missing a link to a reproduction:\n- https://github.com/nuxt/nuxt/issues/32652\n- https://github.com/nuxt/nuxt/issues/32646\n\n### Logs\n\n\u003Cimg width=\"490\" height=\"94\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/5c8a3058-32bc-4994-b02f-d9750566535d\" />",[3056],{"name":3043,"color":3044},32714,"fix(types): v4 auto-import in shared directory","2025-07-21T23:23:54Z","https://github.com/nuxt/nuxt/issues/32714",0.65832376,{"description":3063,"labels":3064,"number":3071,"owner":3033,"repository":3033,"state":3072,"title":3073,"updated_at":3074,"url":3075,"score":3076},"### Environment\r\n\r\n- Operating System: Windows_NT\r\n- Node Version: v22.0.0\r\n- Nuxt Version: 3.12.4\r\n- CLI Version: 3.12.0\r\n- Nitro Version: 2.9.7\r\n- Package Manager: pnpm@9.6.0\r\n- Builder: -\r\n- User Config: runtimeConfig\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n\r\n### Reproduction\r\n\r\nhttps://github.com/KazariEX/nuxt-minimal\r\n\r\n### Describe the bug\r\n\r\nWhen I write the following code somewhere in the application:\r\n\r\n```ts\r\ndeclare module \"@nuxt/schema\" {\r\n interface PublicRuntimeConfig {}\r\n}\r\n```\r\n\r\nall properties under `runtimeConfig` will be overridden by this interface instead of being extended.\r\n\r\n### Additional context\r\n\r\nI understand that doing this in isolation doesn't make sense, but when I import the `ModuleOptions` type from `@nuxtjs/robots`, the `dist/types.d.ts` file from that package will be included, which contains the aforementioned code, causing all my `runtimeConfig.public` types to be lost.\r\n\r\nI'm not sure what the issue is, but I hope to learn how to prevent type loss.\r\n\r\n### Logs\r\n\r\n_No response_",[3065,3066,3067,3068],{"name":3021,"color":3022},{"name":3027,"color":3028},{"name":3030,"color":3031},{"name":3069,"color":3070},"🔨 p3-minor","FBCA04",28332,"closed","The props of `PublicRuntimeConfig` are inferred as `unknown`","2024-12-11T14:52:36Z","https://github.com/nuxt/nuxt/issues/28332",0.6162306,{"description":3078,"labels":3079,"number":3084,"owner":3033,"repository":3033,"state":3072,"title":3085,"updated_at":3086,"url":3087,"score":3088},"### Environment\r\n\r\nOutput of `npx nuxi info` on my machine\r\n------------------------------\r\n- Operating System: `Linux`\r\n- Node Version: `v16.16.0`\r\n- Nuxt Version: `3.0.0-rc.12`\r\n- Nitro Version: `0.6.0`\r\n- Package Manager: `yarn@1.22.19`\r\n- Builder: `vite`\r\n- User Config: `modules`, `runtimeConfig`, `vite`, `i18n`\r\n- Runtime Modules: `@nuxtjs/tailwindcss@5.3.5`, `@pinia/nuxt@0.4.3`, `@nuxtjs/i18n@8.0.0-beta.1`, `@nuxtjs/google-fonts@3.0.0-1`\r\n- Build Modules: `-`\r\n------------------------------\r\n\r\n### Reproduction\r\n\r\nThe issue can be reproduces on [this stackblitz](https://stackblitz.com/edit/github-xgf3pv?file=composables%2FuseFeatureFlags.ts)\r\n\r\n### Describe the bug\r\n\r\nHey there, I'm having a strange issue with the typings of `PublicRuntimeConfig` and I don't quite know how it's happening.\r\n\r\nThe issue is that whatever I do to define the typings of my runtime config (let Nuxt create them for me or override them in a `d.ts` file), I can't seem to get any type inference when using `keyof PublicRuntimeConfig` or even\r\n```ts\r\nconst config = useRuntimeConfig()\r\n// Does not throw an error even if I have no env var called 'foo', does not provide intellisense either\r\nconst bar: keyof typeof config['public'] = 'foo'\r\n\r\n```\r\n\r\n### Additional context\r\n\r\nMost of the context is provided in the reproduction StackBlitz but I'll paste the code in here too for reference.\r\n\r\n```ts\r\n// Please note that the following reproduction is valid wether or not `PublicRuntimeConfig` is declared in `./index.d.ts`\r\n// Some of the types I'm using are declared bellow the function implementation to make this more readable and to the point\r\n\r\n// content of `./nuxt.config.ts`\r\nexport default defineNuxtConfig({\r\n runtimeConfig: {\r\n public: {\r\n foo: '',\r\n featureEnableBar: false,\r\n featureBaz: true,\r\n },\r\n },\r\n});\r\n\r\n// Content of `./composables/useFeatureFlag.ts`\r\nexport default function useFeatureFlag() {\r\n const config = useRuntimeConfig();\r\n\r\n // This should not work\r\n const foo: keyof typeof config['public'] = 'whateverImNotARuntimeConfigKey';\r\n\r\n // This is infered as `never` when it should be 'featureEnableBar' | 'featureBaz'\r\n type FeatureFlags = FeatureFlagsOnly\u003Ctypeof config['public']>; // never\r\n\r\n // This is infered correctly\r\n type Works = FeatureFlagsOnly\u003CTestRuntimeConfig>; // \"featureEnableBar\" | \"featureBaz\"\r\n\r\n // The function we're trying to type, the intended signature is declared bellow\r\n function isFeatureEnabled(flag: FeatureFlags, value?: any) {\r\n if (typeof config.public[flag] === 'boolean') {\r\n return config.public[flag];\r\n }\r\n return config.public[flag] === value;\r\n }\r\n\r\n return {\r\n isFeatureEnabled,\r\n };\r\n}\r\n\r\n// The following types are a rough description of what I'm trying to achieve and why this issue is blocking me\r\n\r\n// Define a prefix (my company's convention, but not the point here)\r\ntype FeaturePrefix = 'feature';\r\n\r\n// Extract a union type of the keys of T that start with our prefix (we need U but don't use it)\r\ntype FeatureFlagsOnly\u003CT> = {\r\n [K in keyof T]: K extends `${FeaturePrefix}${infer U}` ? K : never;\r\n}[keyof T];\r\n\r\ninterface TestRuntimeConfig {\r\n bar: string;\r\n featureFooEnabled: boolean;\r\n featureBaz: boolean;\r\n}\r\n\r\n// We aim at providing this function signature to `isFeatureEnabled` so you can only pass it feature flags and not any env var\r\ndeclare function isFeatureEnabled(\r\n flag: FeatureFlagsOnly\u003CTestRuntimeConfig>,\r\n value?: any\r\n): boolean;\r\n\r\nisFeatureEnabled('featureBaz'); // works (with intellisense too)\r\nisFeatureEnabled('bar'); // This throws a TS error since its not a feature flag env var\r\n```\r\n\r\n### Logs\r\n\r\n_No response_",[3080,3083],{"name":3081,"color":3082},"3.x","29bc7f",{"name":3043,"color":3044},15294,"`PublicRuntimeConfig` typings are broken","2023-01-19T17:49:15Z","https://github.com/nuxt/nuxt/issues/15294",0.6346571,{"labels":3090,"number":3098,"owner":3033,"repository":3033,"state":3072,"title":3099,"updated_at":3100,"url":3101,"score":3102},[3091,3092,3093,3095],{"name":3081,"color":3082},{"name":3043,"color":3044},{"name":3094,"color":3070},"needs reproduction",{"name":3096,"color":3097},"layers","006B75",25230,"Wrong tsconfig when operating in monorepo","2024-05-24T14:00:23Z","https://github.com/nuxt/nuxt/issues/25230",0.6436243,{"description":3104,"labels":3105,"number":3107,"owner":3033,"repository":3033,"state":3072,"title":3108,"updated_at":3109,"url":3110,"score":3111},"### Environment\n\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.20.3\r\n- Nuxt Version: 3.13.1\r\n- CLI Version: 3.13.1\r\n- Nitro Version: 2.9.7\r\n- Package Manager: npm@10.2.3\r\n- Builder: -\r\n- User Config: compatibilityDate, devtools, typescript, modules, runtimeConfig\r\n- Runtime Modules: nuxt-security@1.4.3, @nuxtjs/i18n@8.5.1\r\n- Build Modules: -\r\n------------------------------\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-unypdj?file=README.md\r\n\r\n`npm run typecheck`:\r\n\r\n\r\nRemoves any of the two module in Nuxt config, and there is no more typechecking issues.\r\n\n\n### Describe the bug\n\n`useRuntimeConfig` is returning a type `unknown`, when multiple modules are enabled.\r\n\r\nThe bug doesn't seem to be related to the modules themselves, because individually they don't cause any issues, only when they are enabled simultaneously. Looking at the generated `.nuxt/types/schema.d.ts`, I don't see anything blatant that would explain the issue\n\n### Additional context\n\nThe issue looks really similar to #28672, but for runtime configs instead of plugins.\n\n### Logs\n\n_No response_",[3106],{"name":3043,"color":3044},28831,"useRuntimeConfig is returning a type unknown when multiple modules are enabled","2024-09-09T15:36:25Z","https://github.com/nuxt/nuxt/issues/28831",0.6468616,{"description":3113,"labels":3114,"number":3120,"owner":3033,"repository":3033,"state":3072,"title":3121,"updated_at":3122,"url":3123,"score":3124},"### Environment\n\n------------------------------\r\n- Operating System: Windows_NT\r\n- Node Version: v20.16.0\r\n- Nuxt Version: 3.13.0\r\n- CLI Version: 3.12.0\r\n- Nitro Version: 2.9.7\r\n- Package Manager: npm@10.8.1\r\n- Builder: -\r\n- User Config: modules, devtools, compatibilityDate\r\n- Runtime Modules: @nuxtjs/i18n@8.5.0\r\n- Build Modules: -\r\n------------------------------\n\n### Reproduction\n\nhttps://github.com/frasza/plugin-type\n\n### Describe the bug\n\nI have axios plugin that provides its instance to the app and in case I add `@nuxtjs/i18n` to the nuxt config modules array, the plugin type becomes `unknown`. \n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3115,3116,3117],{"name":3043,"color":3044},{"name":3030,"color":3031},{"name":3118,"color":3119},"upstream-bug","B60205",28672,"Plugin types break if I add @nuxtjs/i18n to modules","2024-08-26T12:36:36Z","https://github.com/nuxt/nuxt/issues/28672",0.64887416,{"description":3126,"labels":3127,"number":3131,"owner":3033,"repository":3033,"state":3072,"title":3132,"updated_at":3133,"url":3134,"score":3135},"### Environment\n\n```\nWorking directory: /home/projects/github-upm6owvq nuxi 19:24:52\nNuxt project info: nuxi 19:24:52\n\n------------------------------\n- Operating System: Linux\n- Node Version: v20.19.1\n- Nuxt Version: 4.0.0-rc.0\n- CLI Version: 3.25.1\n- Nitro Version: 2.11.13\n- Package Manager: npm@10.8.2\n- Builder: -\n- User Config: compatibilityDate, devtools\n- Runtime Modules: -\n- Build Modules: -\n------------------------------\n```\n\n### Reproduction\n\nhttps://stackblitz.com/edit/github-upm6owvq\n\n### Describe the bug\n\nHello,\nI am currently trying out the v4.0.0 RC.0 and noticed an issue when using the new tsconfig.json structure (using references as described [here](https://nuxt.com/docs/4.x/guide/directory-structure/tsconfig)).\n\n### Setup\n- Define a component in a Nuxt layer folder\n- Import a type from another file of that layer via the autogenerated layer alias (e.g. `#layers/my-layer/composables/my-composable`)\n- Use that type as the type for the props of that component\n\nIf I now use that component (see `TestLayerComponent3` in the Stackblitz Repro) in my app, Nuxt breaks with:\n```\n[@vue/compiler-sfc] Failed to resolve import source \"#layers/test-layer/composables/sub-folder/use-test-props\"\n/home/projects/github-upm6owvq/layers/test-layer/components/TestLayerComponent3.vue\nimport type { TestProps } from '#layers/test-layer/composables/sub-folder/use-test-props';\ndefineProps\u003CTestProps>();\n^^^^^^^^^ \n\u003C/script>\nat new H3Error (/home/projects/github-upm6owvq/node_modules/h3/dist/index.mjs:170:5) at Module.createError (/home/projects/github-upm6owvq/node_modules/h3/dist/index.mjs:196:15) at eval (/home/projects/github-upm6owvq/node_modules/@nuxt/vite-builder/dist/index.mjs:420:25) at async processMessage (/home/projects/github-upm6owvq/node_modules/@nuxt/vite-builder/dist/index.mjs:403:30)\n```\n\n### Further Info\nIt only breaks in this exact setup. The following similar cases all work for me:\n- Importing the props type from that layer in a component of the main /app folder (see `TestComponent`)\n- Using a relative import path to import the type inside the layer (see `TestLayerComponent1`)\n- Importing something else - e.g. a composable - via the layer alias inside the layer (see `TestLayerComponent2`)\n\nUsing the old tsconfig.json structure with `\"extends\": \"./.nuxt/tsconfig.json\"` also fixes the problem.\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3128,3129,3130],{"name":3043,"color":3044},{"name":3030,"color":3031},{"name":3046,"color":3047},32590,"[v4] New tsconfig.json style: Importing props type in layer component via layer alias fails in [@vue/compiler-sfc]","2025-07-11T22:29:06Z","https://github.com/nuxt/nuxt/issues/32590",0.6490555,{"description":3137,"labels":3138,"number":3144,"owner":3033,"repository":3033,"state":3072,"title":3145,"updated_at":3146,"url":3147,"score":3148},"### Environment\n\nStackblitz\r\n\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: -\r\n- Package Manager: npm@10.2.3\r\n- Builder: -\r\n- User Config: extends\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n------------------------------\r\n````\n\n### Reproduction\n\nhttps://stackblitz.com/github/martinszeltins/found-nuxt-components-issue?file=app.vue\n\n### Describe the bug\n\nWhen I add this module to my modules array in nuxt.config.ts then I lose all typings for my components _(for both local and 3rd party components)._ It shows that components have type of `unknown`. Before I add this module, everything works.\r\n\r\n**nuxt.config.ts** 👇️\r\n```diff\r\nmodules: [\r\n+ '@nuxtjs/i18n', // This breaks all auto-import component typings (components not recognized anymore)\r\n '@vueuse/nuxt',\r\n 'nuxt-primevue'\r\n],\r\n```\r\n\r\nIf I remove it from my modules array then everything works again.\r\n\r\n**Screenshot before adding the module (everything works):** 👍️ 👇️\r\n\r\n\r\n\r\n**Screenshot after adding the module (type unknown):** ❌ 👇️\r\n\r\n\r\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[3139,3140,3141,3142,3143],{"name":3021,"color":3022},{"name":3081,"color":3082},{"name":3024,"color":3025},{"name":3027,"color":3028},{"name":3030,"color":3031},26214,"Adding `@nuxtjs/i18n` to Nuxt breaks component types (shows unknown)","2024-05-27T10:28:40Z","https://github.com/nuxt/nuxt/issues/26214",0.64970976,["Reactive",3150],{},["Set"],["ShallowReactive",3153],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$f3HfAD3TCxo6sn5yI6bvgWDM-wMgWBj2D0QcDFfUzBs0":-1},"/nuxt/nuxt/30993"]