将流类型包含到JSDoc中

时间:2017-09-11 14:44:35

标签: javascript types annotations flowtype jsdoc

我一直在github上阅读一些issues,在Flow之上构建projects,用于在Flow和JSDoc之间创建“桥梁”,或者只是从Flow类型注释生成JSDoc。

他们都没有回答我的“简单”需求:
问:如何将流类型包含到JSDoc中?

我不想摆脱JSDoc注释块,因为它们不仅用于类型检查,还用于文档和向其他人或未来自己解释代码。

我想要的是:

// @flow
// This file should be parsed by flow   

// 1) Use all the advantages of flow
type MyObject = {
  foo: number,
  bar: boolean,
  baz: string,
}; 

// later..

// 2) Comment AND annotate FLOW TYPE using JSDoc, not the Flow syntax
/**
 * Make super complex thing
 * @param {MyObject} val an object of type MyObject
 * @returns {String} an interesting value
 */
function superComplexThingy(val) { 
  return val.baz  
}

总结一下,我想:

  1. 使用flow的所有优点(如上面的类型定义)
  2. 使用JSDoc注释和注释FLOW TYPE,而不是Flow语法
  3. 这可能吗?怎么样?

1 个答案:

答案 0 :(得分:0)

超级晚期响应,但这不是Flow支持的内容,可能不会受到支持。如果你想编写自己的转换器来将一些jsdoc注释转换为Flow类型,你可能会这样做,但这需要很多工作。

其他一些人尝试过这类工作,但似乎不太活跃:https://github.com/Kegsay/flow-jsdoc