baidu / san

A fast, portable, flexible JavaScript component framework
https://baidu.github.io/san/
MIT License
4.73k stars 551 forks source link

如何使用typescript定义s-ref的类型? #738

Closed gnipbao closed 1 year ago

gnipbao commented 1 year ago

在使用ts开发san项目时候遇到了需要通过s-ref指令获取子组件实例并调用子组件上的方法。 类似如下

<Children s-ref="children"></Children>
// call func 
this.ref("children").func()
// error 类型“Component<{}>”上不存在属性“func”

ts检测报错,这里有没有好的类型定义方法?

errorrik commented 1 year ago

ref<TCmpt extends Component<{}>>(refName: string): TCmpt;

this.ref<MyComponent>('name')