Skip to content
Merged
9 changes: 9 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,14 @@
"typescript": "latest",
"vite": "latest",
"vitest": "latest"
},
"pnpm": {
"overrides": {
"@vue/runtime-dom": "alpha",
"@vue/shared": "alpha",
"@vue/compiler-dom": "alpha",
"@vue/compiler-sfc": "alpha",
"vue": "alpha"
}
}
}
162 changes: 75 additions & 87 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions test-workspace/tsc/vue3/#3779/main.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<script setup lang="ts">
import { exactType } from '../../shared';
defineProps<{
optionalBoolean?: boolean;
}>();
</script>

<template>
<h1>{{ exactType(optionalBoolean, {} as boolean | undefined) }}</h1>
</template>
10 changes: 10 additions & 0 deletions test-workspace/tsc/vue3/#3779/named.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<script setup lang="ts">
import { exactType } from '../../shared';
const props = defineProps<{
optionalBoolean?: boolean;
}>();
</script>

<template>
<h1>{{ exactType(optionalBoolean, true as boolean) }}</h1>
</template>
19 changes: 19 additions & 0 deletions test-workspace/tsc/vue3/#3820/main.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<script setup lang="ts" generic="T extends { name: string }">
const props = defineProps<{
one: T;
all: Array<T>;
}>();
</script>

<template>
<div>
<!-- incorrect inference -->
<div>{{ one.name }}</div>
<!-- correct inference -->
<div>{{ props.one.name }}</div>
<ul>
<!-- correct inference -->
<li v-for="el in all">{{ el.name }}</li>
</ul>
</div>
</template>