【发布时间】:2020-11-29 07:48:21
【问题描述】:
出现 Vetur 错误“无法调用可能‘未定义’的对象。”在应该没问题的线路上。我确实在 Vetur 的 VS 代码设置中选中了“使用工作区依赖项”。
import { defineComponent } from "vue"
export default defineComponent({
name: "FormGroup",
setup(_, { emit, slots }) {
const validationErrorFree = () => {
const vnodes = slots?.default() // <-- Vetur errors on slots?.default()
const formInputs = vnodes.filter(
(vnode) => vnode?.componentOptions?.tag === "FormInput",
)
...
Vetur 不应该理解 TypeScript 可选链吗?我也尝试添加
if (slots === undefined) return true
在显示错误的行之前(并且它没有改变任何东西)。包装也一样:
if (slots !== undefined) {
围绕函数的内部。对我忽略了什么有什么想法?
【问题讨论】:
-
使用非空断言操作符
!告诉转译器,即使它可能为空,请将其视为非空。您可以使用非空断言运算符与空传播/可选链接运算符一起使用,尽管我忘记了它们的运行方式,例如(两者任一 !?)。请检查下一个有好的答案的评论
标签: typescript vue.js vetur