如何用Javascript为TypeScript编译器编写JSDoc?

如何用Javascript为TypeScript编译器编写JSDoc?,javascript,reactjs,typescript,jsdoc,Javascript,Reactjs,Typescript,Jsdoc,我知道有能力用TS编译器检查JS代码。我知道TS编译器理解JSDoc注释() 我想在React项目中使用TS编译器,但我不知道如何使用JSDoc指定道具定义:( 我试过了 class PropertyDetails extends React.Component { static propTypes = { breadcrumbChange: PropTypes.func, folderId: PropTypes.string.isRequired } /**

我知道有能力用TS编译器检查JS代码。我知道TS编译器理解JSDoc注释()

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

我试过了

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);

但它不起作用。

要使智能感知和类型检查起作用,您必须为组件类指定属性类型,因为在类型中,它被描述为泛型对象。所以如果您尝试这样的操作

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

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