javascript - 从使用 `prop-types` 的 JS React 组件生成类型定义
问题描述
我们有一个像这样的组件:
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,
}
.....
}
是否有一些工具可以为打字稿声明文件启用类型生成以生成类似:
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-types
,但它为您提供了正确的使用结果。
推荐阅读
- java - 有没有办法深入研究 java 包,看看它们是如何实现的......?
- javascript - 其他文件中的 HTML 超链接扩展列表
- java - java.io.Writer.write 处的 java.lang.NullPointerException(未知来源)
- tig - 如何在 iTerm 上自定义更改 tig 文本颜色?
- swift - 添加到超级视图时如何重新构建 UIView(已创建)
- python - 在 Conda 中运行 rdkit
- tcp - 如何在python中打破等待接受带有键盘中断的TCP连接的无限循环
- tcl - tcl 中的分组
- java - Dozer 清空仅存在于 dest 中的字段,而不是忽略
- php - 如何通过 curl 正确设置 json 请求的标头