没有官方的方式来声明$refs
组件选项的类型。
实际上,您似乎可以通过使用以下任一方法来避免类型断言vue-class-component
:
import Vue from 'vue'
import Component from 'vue-class-component'
@Component
export default class UserForm extends Vue {
$refs!: {
searchInput: HTMLFormElement
}
mounted() {
this.$refs.searchInput.reset()
}
}
或vue-property-decorator
:
import { Vue, Component, Ref } from 'vue-property-decorator'
@Component
export default class UserForm extends Vue {
@Ref() readonly searchInput!: HTMLFormElement
mounted() {
this.searchInput.reset()
}
}
或者,您可以使用 Composition API,声明模板ref
的类型:
import { defineComponent, ref, onMounted } from 'vue' // or `@vue/composition-api` for Vue 2
export default defineComponent({
setup() {
const searchInput = ref<HTMLFormElement>()
onMounted(() => searchInput.value?.reset())
return { searchInput }
}
})
演示