Skip to content

TS2339 since 3.1.6+ for non-SFC components #5838

@markusheiden

Description

@markusheiden

Vue - Official extension or vue-tsc version

3.1.8

VSCode version

none

Vue version

3.5.25

TypeScript version

5.9.3

System Info

System:
    OS: macOS 26.1
    CPU: (12) arm64 Apple M2 Max
    Memory: 5.77 GB / 64.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 24.8.0 - /Users/markus/.nvm/versions/node/v24.8.0/bin/node
    npm: 11.6.4 - /Users/markus/.nvm/versions/node/v24.8.0/bin/npm
    pnpm: 10.25.0 - /Users/markus/.nvm/versions/node/v24.8.0/bin/pnpm
  Browsers:
    Chrome: 143.0.7499.41
    Firefox: 141.0
    Safari: 26.1

package.json dependencies

{
  "type": "module",
  "devDependencies": {
    "@types/node": "24.10.2",
    "@vitejs/plugin-vue": "6.0.2",
    "@vitest/ui": "4.0.15",
    "@vue/test-utils": "2.4.6",
    "@vueuse/core": "14.1.0",
    "chokidar-cli": "3.0.0",
    "jsdom": "27.3.0",
    "pinia": "3.0.4",
    "pug": "3.0.3",
    "sass": "1.95.0",
    "typescript": "5.9.3",
    "vite": "7.2.7",
    "vite-plugin-dts": "4.5.4",
    "vite-plugin-vuetify": "2.1.2",
    "vitest": "4.0.15",
    "vue": "3.5.25",
    "vue-component-type-helpers": "3.1.8",
    "vue-i18n": "11.2.2",
    "vue-router": "4.6.3",
    "vue-tsc": "3.1.8",
    "vuetify": "3.11.3"
  }
}

Steps to reproduce

Try to compile a non-SFC component:

<template lang="pug">...</template>
<script lang="ts" src="./Bug.ts"></script>

With at least one return in Bug.ts that is used in Bug.vue.

What is expected?

No error.

What is actually happening?

src/components/Dialogs/ADeleteDialog/ADeleteDialog.vue(5,18): error TS2339: Property 'cancelLabel' does not exist on type 'CreateComponentPublicInstanceWithMixins<ToResolvedProps<{}, {}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, ... 16 more ..., {}>'.
src/components/Dialogs/ADeleteDialog/ADeleteDialog.vue(13,18): error TS2339: Property 'context' does not exist on type 'CreateComponentPublicInstanceWithMixins<ToResolvedProps<{}, {}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, ... 16 more ..., {}>'.

cancelLabel is a prop.
context is a return value.

It looks like there is an TS2339 error for each value that makes it into the .vue.

Link to minimal reproduction

No response

Any additional comments?

The last working version is 3.1.5. In 3.1.6 and 3.1.7 these errors vary a bit.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions