Vue version
3.5.13
Link to minimal reproduction
https://play.vuejs.org/#eNp9VM1OGzEQfpXRCjUgoUQV7SVsgiCiEkWlqKS9YFqZ3UlicOyVf0KiKOeee+qp6rv1CfoIHXuXTdIk3Oz5ZvyN5/PneXJaFM2Jx6SdpDYzonBg0fkCJFfDDkucZUmXKTEutHHQ0+MCBkaPodFshU0obRzXuJsVCHOmIGZqhcpdKOu4yvAwRE+l1E+Y1+C10YWNSB3qeev0eAl8udI5xi1Ti5KbJcTKEqJlKjIGDuhscqYB1YMI0CWYarUgHgV2pL3MQWkHmVaOCwV7UBgciCnmtAg5f3//+P7n18+K4zRznsuyugM3dGEpBrM0UN029mJF445IiALg60nFtg4DTrj03CE4DW4kSo6K4HxaYOYw36CYG+S5VnIGE2HFvcQ23GstkatjqCGWaPW5yOnsdpXFkpM27AfCZcEBdLrA1ewYFvBqZbS02SoNxbcJs3HNnjeGUqgPutgQ6SGMEPi9niB1aL108IQw4rQlPNf/jWW5qkbR03RcVrZw5t3FOMBo5OwKLU1o9/x3KVGdW1f1u3TGHG4vgYR/xBm9kf5dG/q3l3ewYCptlVaIbyZ1SFU0WNoBpNEC1YihRbG0tZKQHJJj6EUNxLD5YLUiW0U7sCSjOiHRfCyc0Ipc1S6NEjAeZv8+xpzxpVVizQizxy3xBzsNMZZc03TRTEjrGnPckAAlfH5zhVNa1+BY5z68jBfAT2i19KHHMu3Mq5zaXsmL3ZImZHihhn17PnWo7POl1hq1zojMvfMqCwf2SYM6J6QsYmK0cxjrrvEsr3TUfBPr6CugST9/QCt/18qvVf5jpElOrlb4gd66TCsfdPcblYSNgxfltkjOL39I8k0Oa+Juav9tgiZMgjo6ar5tvj5KFv8AVB3gSQ==
Steps to reproduce
- Open the linked playground
- Make sure that
strictFunctionTypes is set to true in tsconfig.json
- Hover over types in App.vue setup block
What is expected?
ComponentInstance<typeof Comp>['$props'] should evaluate to object describing Comp's props. It should not contain $-prefixed properties:
type ExpectedProps = {
readonly visible: boolean;
readonly "onUpdate:visible"?: (value: boolean) => any;
key?: PropertyKey;
ref?: VNodeRef;
ref_for?: boolean;
ref_key?: string;
onVnodeBeforeMount?: VNodeMountHook | VNodeMountHook[];
... 6 more ...;
style?: unknown;
}
What is actually happening?
ComponentInstance<typeof Comp>['$props'] evaluates to object containing $-prefixed properties such as
type ActualProps = {
$: ComponentInternalInstance;
$data: {};
$props: Partial<{}> & Omit<{
readonly visible?: boolean;
readonly "onUpdate:visible"?: (value: boolean) => any;
} & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>;
... 25 more ...;
style?: unknown;
}
System Info
Any additional comments?
Seems to be related to defineModel because the bug is not triggered when I'm not using it
Vue version
3.5.13
Link to minimal reproduction
https://play.vuejs.org/#eNp9VM1OGzEQfpXRCjUgoUQV7SVsgiCiEkWlqKS9YFqZ3UlicOyVf0KiKOeee+qp6rv1CfoIHXuXTdIk3Oz5ZvyN5/PneXJaFM2Jx6SdpDYzonBg0fkCJFfDDkucZUmXKTEutHHQ0+MCBkaPodFshU0obRzXuJsVCHOmIGZqhcpdKOu4yvAwRE+l1E+Y1+C10YWNSB3qeev0eAl8udI5xi1Ti5KbJcTKEqJlKjIGDuhscqYB1YMI0CWYarUgHgV2pL3MQWkHmVaOCwV7UBgciCnmtAg5f3//+P7n18+K4zRznsuyugM3dGEpBrM0UN029mJF445IiALg60nFtg4DTrj03CE4DW4kSo6K4HxaYOYw36CYG+S5VnIGE2HFvcQ23GstkatjqCGWaPW5yOnsdpXFkpM27AfCZcEBdLrA1ewYFvBqZbS02SoNxbcJs3HNnjeGUqgPutgQ6SGMEPi9niB1aL108IQw4rQlPNf/jWW5qkbR03RcVrZw5t3FOMBo5OwKLU1o9/x3KVGdW1f1u3TGHG4vgYR/xBm9kf5dG/q3l3ewYCptlVaIbyZ1SFU0WNoBpNEC1YihRbG0tZKQHJJj6EUNxLD5YLUiW0U7sCSjOiHRfCyc0Ipc1S6NEjAeZv8+xpzxpVVizQizxy3xBzsNMZZc03TRTEjrGnPckAAlfH5zhVNa1+BY5z68jBfAT2i19KHHMu3Mq5zaXsmL3ZImZHihhn17PnWo7POl1hq1zojMvfMqCwf2SYM6J6QsYmK0cxjrrvEsr3TUfBPr6CugST9/QCt/18qvVf5jpElOrlb4gd66TCsfdPcblYSNgxfltkjOL39I8k0Oa+Juav9tgiZMgjo6ar5tvj5KFv8AVB3gSQ==
Steps to reproduce
strictFunctionTypesis set totrueintsconfig.jsonWhat is expected?
ComponentInstance<typeof Comp>['$props']should evaluate to object describingComp's props. It should not contain$-prefixed properties:What is actually happening?
ComponentInstance<typeof Comp>['$props']evaluates to object containing$-prefixed properties such asSystem Info
Any additional comments?
Seems to be related to
defineModelbecause the bug is not triggered when I'm not using it