\r\n\u003C/template>\r\n\r\n```\r\n\r\n```ts\r\n// config.ts\r\nimport type {ComponentA} from \"#components\";\r\nimport {ComponentOptionsBase} from \"@vue/runtime-core\";\r\n\r\n\r\ntype ComponentProps\u003CT> = T extends ComponentOptionsBase\u003Cinfer P, // Props\r\n any, // RawBindings\r\n any, // D\r\n any, // C\r\n any, // M\r\n any, // Mixin\r\n any, // Extends\r\n any> ? unknown extends P ? {} : P : {};\r\n\r\n\r\ntype CompAProps = ComponentProps\u003Ctypeof ComponentA>\r\n\r\n\r\nconst someConfig:CompAProps = {\r\n // @ts-expect-error\r\n notExistedProp: true // should be error\r\n}\r\n```\n\n### Additional context\n\n\r\n\r\nThere are must be some props typing in first generic argument of `DefineComponent`\n\n### Logs\n\n_No response_",[2003,2004,2007],{"name":1985,"color":1986},{"name":2005,"color":2006},"3.x","29bc7f",{"name":2008,"color":2009},"upstream","E8A36D",20010,"closed","Empty global components props typings","2023-10-22T09:01:34Z","https://github.com/nuxt/nuxt/issues/20010",0.6828735,{"description":2017,"labels":2018,"number":2027,"owner":1994,"repository":1994,"state":2011,"title":2028,"updated_at":2029,"url":2030,"score":2031},"### Environment\n\n```\r\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v16.14.2\r\n- Nuxt Version: ^3.5.2\r\n- Nitro Version: 2.4.1\r\n- Package Manager: npm@7.17.0\r\n- Builder: webpack\r\n- User Config: builder, webpack\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n------------------------------\r\n```\n\n### Reproduction\n\nhttps://stackblitz.com/edit/nuxt-starter-6ue8jc?file=nuxt.config.ts\n\n### Describe the bug\n\nNuxt has [a schema](https://github.com/nuxt/nuxt/blob/main/packages/schema/src/config/webpack.ts#L154-L163) of `vue-loader` options that [partially matches](https://github.com/vuejs/vue-loader/blob/main/src/index.ts#L32-L62) `vue-loader`. \r\n\r\nFor example, you can enable experimental features like Vue 3.3 `defineModel` in `webpack.loaders.vue`, but TypeScript won't recognize it as a valid property. However, if you ignore the error squiggles, it does work.\r\n\n\n### Additional context\n\nMentioned in https://github.com/nuxt/nuxt/pull/21303#issuecomment-1574295022\n\n### Logs\n\n```shell-script\n'{ defineModel: true; }' is not assignable to type '{ productionMode?: boolean | undefined; transformAssetUrls?: { video?: string | undefined; source?: string | undefined; object?: string | undefined; embed?: string | undefined; } | undefined; compilerOptions?: { ...; } | undefined; }'.\r\n Object literal may only specify known properties, and 'defineModel' does not exist in type '{ productionMode?: boolean | undefined; transformAssetUrls?: { video?: string | undefined; source?: string | undefined; object?: string | undefined; embed?: string | undefined; } | undefined; compilerOptions?: { ...; } | undefined; }'.(2322)\n```\n",[2019,2022,2023,2024],{"name":2020,"color":2021},"good first issue","fbca04",{"name":1985,"color":1986},{"name":2005,"color":2006},{"name":2025,"color":2026},"bug","d73a4a",21332,"Extend vue-loader option types ","2023-06-04T22:07:55Z","https://github.com/nuxt/nuxt/issues/21332",0.6850238,{"description":2033,"labels":2034,"number":2039,"owner":1994,"repository":1994,"state":2011,"title":2040,"updated_at":2041,"url":2042,"score":2043},"### Environment\r\n\r\n- Operating System: Darwin\r\n- Node Version: v18.14.0\r\n- Nuxt Version: 3.6.1\r\n- Nitro Version: 2.5.2\r\n- Package Manager: yarn@1.22.19\r\n- Builder: vite\r\n- User Config: -\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n\r\n**VsCode 1.79.2**\r\n- vscode.typescript-language-features: disabled\r\n- Vue.volar: 1.8.3, enabled\r\n- Vue.vscode-typescript-vue-plugin: 1.8.3, enabled\r\n\r\n### Reproduction\r\n\r\nhttps://github.com/niklas-may/nuxt-module-issue-reproduction\r\n\r\n### Describe the bug\r\n\r\n**Preface**\r\n_Thank you for your amazing work on Nuxt! I am not sure where this issue is best raised, Nuxt, VsCode or Vue. But due to the special typescript tooling with auto imports, I thought it's best to start here, and would be happy to hear if anybody observed a similar behaviour or has a solution._ \r\n\r\n**Description**\r\nWhen I open `~/.nuxt/components.d.ts` in VsCode and hover over an imported component, VsCode IntelliSense popover displays the correct types for this component.\r\nBut when I use the component in any other components template block, for example `~/app.vue`, the typing is missing the prop types.\r\n\r\n### Component and Type Definitions\r\n\r\n`~/../src/runtime/MyButton.vue`\r\n\r\n```vue\r\n\u003Ctemplate>\r\n \u003Cdiv style=\"border: 1px solid pink\">\r\n \u003Cslot />\r\n \u003C/div>\r\n\u003C/template>\r\n\u003Cscript setup lang=\"ts\">\r\nwithDefaults(\r\n defineProps\u003C{\r\n variant: \"fill\" | \"ghost\";\r\n }>(),\r\n { variant: \"fill\" }\r\n);\r\n\u003C/script>\r\n```\r\n\r\n`~/.nuxt/components.d.ts`\r\n\r\n```TypeScript\r\ndeclare module 'vue' {\r\n export interface GlobalComponents {\r\n //...\r\n 'MyButton': typeof import(\"../../src/runtime/components/MyButton.vue\")['default']\r\n //...\r\n }\r\n}\r\n\r\nexport const MyButton: typeof import(\"../../src/runtime/components/MyButton.vue\")['default']\r\n\r\nexport const componentNames: string[]\r\n```\r\n\r\n\r\n### Correct Intellisense\r\n\r\nVsCode popopver hovering `'MyButton'` in `~/.nuxt/components.d.ts`\r\n\r\n```TypeScript\r\n(property) GlobalComponents['MyButton']: __VLS_WithTemplateSlots\u003CDefineComponent\u003C{\r\n variant: {\r\n type: PropType\u003C\"fill\" | \"ghost\">;\r\n required: true;\r\n default: string;\r\n };\r\n}, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ... 5 more ..., {}>, {\r\n ...;\r\n}>\r\n````\r\n\r\n### Wrong Intellisense\r\n\r\nVsCode popopver hovering `\u003CMyButton />` in the template block of `~/app.vue` (or any other template)\r\n\r\n```TypeScript\r\n(property) 'MyButton': DefineComponent\u003C{}, {}, any>\r\n```\r\n\r\n### Additional context\r\n\r\nThe above example is the current state of the reproduction repo. But a different, but similar behavior happened in other reports (for example a yarn workspace repo). Strange enough, sometimes, it works fine...\r\n\r\n### Logs\r\n\r\n_No response_",[2035,2036,2037,2038],{"name":1985,"color":1986},{"name":2005,"color":2006},{"name":1988,"color":1989},{"name":2008,"color":2009},21933,"Component appears to be untyped in template block","2023-12-12T14:36:22Z","https://github.com/nuxt/nuxt/issues/21933",0.68536663,{"labels":2045,"number":2050,"owner":1994,"repository":1994,"state":2011,"title":2051,"updated_at":2052,"url":2053,"score":2054},[2046,2047],{"name":1988,"color":1989},{"name":2048,"color":2049},"2.x","d4c5f9",6894,"Typescript linting issue","2023-01-22T15:34:48Z","https://github.com/nuxt/nuxt/issues/6894",0.6924664,{"description":2056,"labels":2057,"number":2064,"owner":1994,"repository":1994,"state":2011,"title":2065,"updated_at":2066,"url":2067,"score":2068},"### Environment\n\n------------------------------\r\n- Operating System: Darwin\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: 2.9.6\r\n- Package Manager: yarn@1.22.21\r\n- Builder: -\r\n- User Config: ssr, app, nitro, runtimeConfig, devtools, css, modules, typescript, postcss, colorMode\r\n- Runtime Modules: nuxt-svgo@4.0.0, @vueuse/nuxt@10.7.2, @samk-dev/nuxt-vcalendar@1.0.2, dayjs-nuxt@2.1.9, @pinia/nuxt@0.5.1, @nuxt/image@1.3.0, @nuxtjs/device@3.1.1, @nuxtjs/color-mode@3.3.2, nuxt-swiper@1.2.2\r\n- Build Modules: -\r\n------------------------------\n\n### Reproduction\n\nTo reproduce you will need this configuration:\r\n{\r\n \"name\": \"nuxt-app\",\r\n \"private\": true,\r\n \"type\": \"module\",\r\n \"scripts\": {\r\n \"build\": \"nuxt build\",\r\n \"dev\": \"nuxt dev\",\r\n \"generate\": \"nuxt generate\",\r\n \"preview\": \"nuxt preview\",\r\n \"postinstall\": \"nuxt prepare\",\r\n \"lint\": \"eslint .\",\r\n \"lint:fix\": \"eslint . --fix\"\r\n },\r\n \"devDependencies\": {\r\n \"@nuxt/eslint-config\": \"^0.2.0\",\r\n \"@nuxtjs/color-mode\": \"^3.3.2\",\r\n \"@nuxtjs/device\": \"^3.1.1\",\r\n \"@samk-dev/nuxt-vcalendar\": \"^1.0.2\",\r\n \"@vueuse/core\": \"^10.7.2\",\r\n \"@vueuse/nuxt\": \"^10.7.2\",\r\n \"add\": \"^2.0.6\",\r\n \"autoprefixer\": \"^10.4.17\",\r\n \"dayjs-nuxt\": \"^2.1.9\",\r\n \"eslint\": \"^8.56.0\",\r\n \"nuxt\": \"^3.11.2\",\r\n \"nuxt-svgo\": \"^4.0.0\",\r\n \"postcss\": \"^8.4.33\",\r\n \"sass\": \"^1.70.0\",\r\n \"tailwindcss\": \"^3.4.1\",\r\n \"typescript\": \"^5.4.4\",\r\n \"vue\": \"^3.4.21\",\r\n \"vue-router\": \"^4.2.5\",\r\n \"vue-tsc\": \"^1.8.27\",\r\n \"yarn\": \"^1.22.21\"\r\n },\r\n \"dependencies\": {\r\n \"@nuxt/image\": \"^1.3.0\",\r\n \"@pinia/nuxt\": \"^0.5.1\",\r\n \"@types/crypto-js\": \"^4.2.2\",\r\n \"@types/memory-cache\": \"^0.2.5\",\r\n \"@vueuse/integrations\": \"^10.7.2\",\r\n \"animate.css\": \"^4.1.1\",\r\n \"crypto-js\": \"^4.2.0\",\r\n \"defu\": \"^6.1.4\",\r\n \"memory-cache\": \"^0.2.0\",\r\n \"nuxt-swiper\": \"^1.2.2\",\r\n \"pinia\": \"^2.1.7\",\r\n \"ufo\": \"^1.5.3\",\r\n \"universal-cookie\": \"^7.0.1\"\r\n }\r\n}\r\n\r\nI am using Webstorm\n\n### Describe the bug\n\nI have this code to make POST request to server:\r\nconst publications = await $fetch\u003CPublicationsResponse>('/v1/publication/search?limit=10&page=1', {\r\n method: 'POST',\r\n body: {\r\n \"categories\": [\r\n {\r\n \"id\": props.categoryId\r\n }\r\n ]\r\n }\r\n})\r\n\r\nI am getting this error:\r\n\r\n\r\nIts only disappears, when I am removing method: 'POST', but I need to make Post request.\r\nWhat can be wrong?\r\n\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[2058,2059,2060,2061],{"name":2005,"color":2006},{"name":1988,"color":1989},{"name":1991,"color":1992},{"name":2062,"color":2063},"closed-by-bot","ededed",26650,"Types issue in $fetch","2024-04-13T01:42:05Z","https://github.com/nuxt/nuxt/issues/26650",0.6926107,{"labels":2070,"number":2074,"owner":1994,"repository":1994,"state":2011,"title":2075,"updated_at":2076,"url":2077,"score":2078},[2071,2072,2073],{"name":1985,"color":1986},{"name":1988,"color":1989},{"name":2048,"color":2049},10468,"Nuxt 2 Broken Typescript Typings when Specifying head","2023-03-17T12:50:05Z","https://github.com/nuxt/nuxt/issues/10468",0.6931041,{"labels":2080,"number":2084,"owner":1994,"repository":1994,"state":2011,"title":2085,"updated_at":2086,"url":2087,"score":2088},[2081,2082,2083],{"name":2005,"color":2006},{"name":1988,"color":1989},{"name":1991,"color":1992},23460,"TS Typing issue.","2023-10-20T22:22:28Z","https://github.com/nuxt/nuxt/issues/23460",0.6976143,{"labels":2090,"number":2093,"owner":1994,"repository":1994,"state":2011,"title":2094,"updated_at":2095,"url":2096,"score":2097},[2091,2092],{"name":1988,"color":1989},{"name":2048,"color":2049},8933,"Typescript : Typed props are cast to Object instead of keeping orignal class instance (Only ssr, spa works fine)","2023-01-22T15:38:48Z","https://github.com/nuxt/nuxt/issues/8933",0.6979901,{"description":2099,"labels":2100,"number":2101,"owner":1994,"repository":1994,"state":2011,"title":2102,"updated_at":2103,"url":2104,"score":2105},"### Environment\n\n- Operating System: `Darwin`\r\n- Node Version: `v14.17.1`\r\n- Nuxt Version: `3-3.0.0-27234347.3759926`\r\n- Package Manager: `Yarn`\r\n- Bundler: `Webpack`\r\n- User Config: `alias`, `css`\r\n- Runtime Modules: `-`\r\n- Build Modules: `-`\r\n\n\n### Describe the bug\n\nIntellisense is not detecting component prop in template\r\n\r\nButton Component\r\n\r\n\r\nUsage of Button\r\n\r\n\n\n### Reproduction\n\n- Declare component props using defineProps generic function and pass props interface.\r\n- Try to assign value to this prop from template\n\n### Additional context\n\n\r\nProbably related to issue johnsoncodehk/volar#460\r\n\n\n### Logs\n\n_No response_",[],12100,"Prop type inference error in template","2023-01-19T15:54:18Z","https://github.com/nuxt/nuxt/issues/12100",0.6993127,["Reactive",2107],{},["Set"],["ShallowReactive",2110],{"TRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"iMk5OWXlIL4wysc1qho-GHqwB3WHS6h3lMw-odxf0bU":-1},"/nuxt/ui/2102"]