flowtype - 是否有一种将流注释类型转换为非注释类型的自动化方法
问题描述
我使用流注释类型已经有一段时间了,现在想摆脱注释并使用“真正的”类型定义。
例如,我想转换
function upper(s/*: string*/)/*: string*/
至
function upper(s: string): string
并且正在寻找一种自动化的方式来做到这一点?
解决方案
我认为你要找的东西还不存在!
基于 ASTExplorer,看起来这些评论类型被解析为好像它们是正常的流类型:
const a /* : string */ = "blah"
解析为:
"typeAnnotation": {
"type": "TypeAnnotation",
"loc": {
"source": null,
"start": {
"line": 1,
"column": 7
},
"end": {
"line": 1,
"column": 15
}
},
"range": [
7,
15
],
"typeAnnotation": {
"type": "StringTypeAnnotation",
"loc": {
"source": null,
"start": {
"line": 1,
"column": 9
},
"end": {
"line": 1,
"column": 15
}
},
"range": [
9,
15
]
}
},
因此,也许如果您只是删除节点并将其添加回来,它会将注释注释替换为常规注释?我只是把东西扔在这里,但如果我有很多替代品要做的话,我会这样做。
或者,您可以手动转换它们,但如果代码库足够大(并且您的兴趣水平足够高),那么操作 AST可能是完成此任务的一种有趣方式。