我正在阅读本教程以获取有关如何在组件中使用类型的一些线索。但到目前为止我的感觉是它是做作的和冗长的。从一个很好的简洁代码,我们得到了一些非常难以阅读的东西。最优雅的方法是什么?似乎关于这个主题的信息很少而且经常过时。使用 TS 和 React 的人并不多。
React.StatelessComponent<React.HTMLProps<JSX.Element>>
优于React.StatelessComponent<{}>
? _
一切从这个错误开始[ts] Property 'propTypes' does not exist on type '({match, onClick, completed, text}: EntityPage) => Element'.
我目前的设置:
import * as React from "react";
import { PropTypes } from "react";
import * as classNames from 'classnames';
interface EntityPage {
match: any,
onClick(): void,
completed: boolean,
text: string
}
export const EntityPageCmp: React.StatelessComponent<{}> =
({ match, onClick, completed, text }: EntityPage) => {
// Styles
require('./entity-page.cmp.scss');
let classes = classNames('entity-page-cmp'),
titleClasses = classNames('title', { active: completed });
return (
<div className={classes} >
<h3 className={titleClasses}>
Entity: {match.params.entityId}
</h3>
{text}
</div>
)
}
EntityPageCmp.propTypes = {
onClick: PropTypes.func.isRequired,
completed: PropTypes.bool.isRequired,
text: PropTypes.string.isRequired
}
export default EntityPageCmp