我试图了解将引用与TypeScript和Options API一起使用的最佳方式。在文档中,他们像下面这样引用它,但没有使用TS。当涉及到TS时,他们只解释了如何与Composition API一起使用它。
当我使用this.$refs.myRef
时,它抛出这个错误Object is of type 'unknown'.
我知道我可以像这样使用它:(this.$refs.myRef as HTMLElement)
,但我觉得不应该有必要做的每一个参考每一次。
在Options API + TS中使用引用的正确方法是什么?
2条答案
按热度按时间a9wyjsp71#
我创建了一个像这样的shim:
shims-runtime-core.d.ts
然后我就能像平常一样接近裁判了。
vxf3dgd42#
我尝试在子组件上使用
ref
来调用触发器函数,因为使用props和watcher对于这样一个简单的事情来说感觉太复杂了。添加子组件并在模板中添加
ref
之后我只暴露了触发函数:
查看更多内容:https://vuejs.org/guide/essentials/template-refs.html#ref-on-component
然后我试着在模板中像这样使用它
就像这样
尽管我从掌掌上得到了这两个错误:供模板中使用
错误TS 18046:“__VLS_ctx.$refs.childComponent”的类型为“未知”
以及在该方法中的使用
错误TS 2571:对象的类型为“未知”
所以我试着像这样在两个地方添加类型信息
这在模板中不起作用,您会得到以下错误:
错误TS 2339:类型上不存在属性“ChildComponent”...
解决方案
但在这种方法中,由于某些原因,它工作得很好
因此,您需要将触发器函数 Package 在一个方法中,然后在模板中可以调用该函数