Este código proviene de la documentación oficial y no usa defineComponent() para declarar componentes. Lo intenté y fallé, y webstorm falló.
//App.vue <script setup lang="ts"> import {RouterLink, RouterView} from 'vue-router' import HelloWorld from '@/components/HelloWorld.vue' import MyModal from '@/views/MyModal.vue' // error: This import is never used as a value and must use 'import type' because 'importsNotUsedAsValues' is set to 'error'. import { ref,nextTick } from 'vue' const modal1= ref(null) const modal2 = ref<InstanceType<typeof MyModal> | null>(null) const childOpen=()=>{ modal1.value.open() // it's working modal2.value?.open() // not working } </script> //MyModal.vue <script setup lang="ts"> import { ref } from 'vue' const isContentShown = ref(false) const open = () => { console.log(2131) isContentShown.value = !isContentShown.value } defineExpose({ open:open }) </script>