前端小白求大佬指点一二

最近在学习vue3+ts的时候遇到一个问题一直不明白
组件中props接收父组件传递的参数
props:{
todo:Object as ()=>Todo
}

Todo是引入的一个接口文件,接口名字为Todo,todo变量是Todo接口格式的
todo:Object as ()=>Todo这行代码如何理解?
视频中讲解为强制类型转换

拆开后我的理解是
Object是变量类型
as 类型断言
()=>Todo 返回值类型为Todo接口类型的函数
但是组合起来就不明白, as后面不因该是直接是变量类型吗?

todo:Object as Todo这样的写我还能理解。
todo:Object as ()=>Todo这样写,有点纳闷
各位见笑了

你理解应该是对的,Object是vue中prop校验类型,()=>Todo是typescript函数类型表达法,表示一个返回值为Todo类型的函数。
因为在js中,一切皆对象,函数也是一个object,结合起来的意思就是todo需要传一个Object类型值,并且很自信的断言你传过来的prop是一个(返回值为Todo类型的函数)。
附vue文档:https://staging-cn.vuejs.org/guide/components/props.html#prop-validation