是否有自动方式将流注释类型转换为非注释类型

时间:2018-06-01 18:16:07

标签: flowtype

我一直在使用流注释类型,现在想要删除注释并使用“真实”类型定义。

我希望转换

function upper(s/*: string*/)/*: string*/

function upper(s: string): string

我正在寻找一种自动化方式吗?

1 个答案:

答案 0 :(得分:1)

我不会想到你正在寻找的东西,但是!

基于ASTExplorer,it looks like those comment types are parsed as if they are normal flow types

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 可能是一种有趣的方法来完成这项工作。