你如何在 Javascript 中为 TypeScript 编译器编写 JSDoc?
How do you write JSDoc in Javascript for TypeScript Compiler?
我知道用TS编译器可以检查JS代码。而且我知道 TS 编译器理解 JSDoc 注释 (https://github.com/Microsoft/TypeScript/wiki/JSDoc-support-in-JavaScript)。
我想在我的 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);
但是没用。
要使 IntelliSense 和类型检查正常工作,您必须为组件指定道具类型 class,因为在类型中它被描述为通用对象。所以如果你尝试这样的事情
/**
* @typedef {Object} Props
* @prop {Function} breadcrumbChange
* @prop {string} folderId
* @extends React.Component<Props>
*/
class PropertyDetails extends React.Component {
}
它应该有效
我知道用TS编译器可以检查JS代码。而且我知道 TS 编译器理解 JSDoc 注释 (https://github.com/Microsoft/TypeScript/wiki/JSDoc-support-in-JavaScript)。
我想在我的 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);
但是没用。
要使 IntelliSense 和类型检查正常工作,您必须为组件指定道具类型 class,因为在类型中它被描述为通用对象。所以如果你尝试这样的事情
/**
* @typedef {Object} Props
* @prop {Function} breadcrumbChange
* @prop {string} folderId
* @extends React.Component<Props>
*/
class PropertyDetails extends React.Component {
}
它应该有效