问题描述
我对TypeScript和编译器API还是很陌生,我正在尝试为React TypeScript项目生成文档。我已经尝试过TypeDoc和react-docgen-typescript。 这两个工具缺少的是我想添加的一种方法,可以为另一个函数内部声明的函数提取文档注释。更确切地说,是在React功能组件内部声明的函数。 因此,例如,一个如下所示的组件:
/** My Functional Component */
const MyFc = () => {
/** Handle something */
handler = (
/** describe param */
e: UIEvent
): void => {
// do something
}
return <button onClick={handler}>Click!</button>
}
export default MyFc;
将生成一个看起来像这样的对象(react-docgen-typescript输出):
{
"description": "My Functional Component","displayName": "MyFc","methods": [
{
"description": "Handle something","modifiers": [],"name": "handler","params": [
{
"description": "describe param","name": "e","type": {
"name": "UIEvent"
}
}
],"returns": null
}
],"props": {}
}
我也很乐意为FC内部声明的其他变量(例如钩子调用)提取文档注释。
我的问题是,在FC内部声明的变量和函数即使是对象的一部分,也不会由Typescript接口公开公开。即,登录到控制台的组件的ts.Type
对象时,我可以看到ts.Type.symbol.valueDeclaration.locals
中的嵌套函数,但是valueDeclaration
的类型为ts.Node
,对象的{{1 }}不是其公共接口的一部分,因此无法通过编译器API进行访问。
我希望这是有道理的。
任何帮助将不胜感激!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)