【问题标题】:How do you write JSDoc in Javascript for TypeScript Compiler?你如何在 JavaScript 中为 TypeScript 编译器编写 JSDoc?
【发布时间】:2017-12-07 00:05:03
【问题描述】:

我知道可以使用 TS 编译器检查 JS 代码。而且我知道 TS 编译器理解 JSDoc cmets (https://github.com/Microsoft/TypeScript/wiki/JSDoc-support-in-JavaScript)。

我想在我的 React 项目中使用 TS 编译器,但我不知道如何使用 JSDoc 指定 props 定义:(

我试过了

class PropertyDetails extends React.Component {
  static propTypes = {
    breadcrumbChange: PropTypes.func,
    folderId: PropTypes.string.isRequired
  }

  /**
   * @typedef {Object} Props
   * @property {function} breadcrumbChange
   * @property {string} folderId
   */

  /**
   * @constructor
   * @param {Props} props
   */
  constructor(props) {
    super(props);

但它不起作用。

【问题讨论】:

  • 最简单的解决方案:实际使用TS并为Props定义一个接口并使用constructor(props: Props)
  • 使用 JS 而不是 TS 不是我的决定 :(

标签: javascript reactjs typescript jsdoc


【解决方案1】:

要使 IntelliSense 和类型检查正常工作,您必须为 Component 类指定 prop 类型,因为在类型化中它被描述为通用对象。所以如果你尝试这样的事情

/**
 * @typedef {Object} Props
 * @prop {Function} breadcrumbChange
 * @prop {string} folderId
 * @extends React.Component<Props>
 */
class PropertyDetails extends React.Component {
}

它应该可以工作

【讨论】:

  • 旁白:没有
猜你喜欢
  • 2019-11-10
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多