Javascript 从使用“prop类型”的JS React组件生成类型定义`
我们有一个组件,如:Javascript 从使用“prop类型”的JS React组件生成类型定义`,javascript,reactjs,typescript,react-proptypes,Javascript,Reactjs,Typescript,React Proptypes,我们有一个组件,如: import PropTypes from 'prop-types'; import React from 'react'; export default class Tooltip extends React.Component { static propTypes = { /** * Some children components */ children: PropTypes.node.isRequired, /**
import PropTypes from 'prop-types';
import React from 'react';
export default class Tooltip extends React.Component {
static propTypes = {
/**
* Some children components
*/
children: PropTypes.node.isRequired,
/**
* Some property
*/
someProp: PropTypes.string,
}
.....
}
是否有一些工具支持对typescript声明文件进行类型生成,以生成如下内容:
interface ITooltip {
children: React.Node,
someProp: string
}
一些参考:
@types/prop types
则可以使用InferProps
泛型类型生成如下类型:
import { InferProps } from "prop-types"
type ITooltip = InferProps<typeof Tooltip.propTypes>
// or interfaces if that's what you prefer:
// interface ITooltip extends InferProps<typeof Tooltip.propTypes> {}
从“prop类型”导入{InferProps}
类型ITooltip=InferProps
//或接口(如果您喜欢):
//接口ITOLTIP扩展了InferrProps{}
由于键入了
prop类型,该类型更为详细,但它在使用中会给出正确的结果。我希望有一种方法可以在生成过程中生成ts声明文件。这是一个用js
编写的包,它被导入到ts
项目中。TypeScript编译器正在为您执行此操作。使用-d
或--declaration
可以生成一个包含所有导出成员的d.ts
文件。但是tsc
将为仅通过js
中的道具类型定义的道具生成d.ts
文件,这就是我正在寻找的工作流。