내 구성 요소에서 유형을 사용하는 방법에 대한 단서를 보려면 this tutorial을 읽었습니다. 그러나 내가 지금까지 얻은 느낌은 그것이 고안되고 장황해진다는 것입니다. 멋진 간결한 코드에서 읽을 수있는 무언가를 얻습니다. 가장 우아한 방법은 무엇입니까? 이 주제에 대한 정보가 부족하고 종종 구식 인 것 같습니다. React와 함께 TS를 사용하는 사람은 그리 많지 않습니다.React 15, Typescript 2.2.1. 기능/상태 비 저장 구성 요소의 유형을 변환하는 방법은 무엇입니까?
React.StatelessComponent<React.HTMLProps<JSX.Element>>
은 React.StatelessComponent<{}>
입니까?
그것은 모두이 오류에서 시작 [ts] Property 'propTypes' does not exist on type '({match, onClick, completed, text}: EntityPage) => Element'.
내 현재 설정 : 당신이
export const EntityPageCmp: React.StatelessComponent<EntitPage> =
({ match, onClick, completed, text }) => {
...
}
처럼 작성해야하므로
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
제목을 확장 해 주셔서 감사합니다. 나는 대부분의 장소에서 컴파일 시간 타입 검사를 사용하는 것으로 충분하다고 동의한다. 나는 Angular 2에서 오는 React를 처음 사용합니다. 런타임 검사가 필요 이상으로 필요한 상황이 분명하다고 말할 수 있습니다. 서비스에서 사용되는 많은 도우미 메서드는 런타임 검사의 이점을 얻는 경향이 있습니다. 나는 보통 오용을 방지하기 위해 매개 변수를 검사하여 콜 스택에서 더 깊은 버그를 방지합니다. 당신이 언급 한 도서관이 편리해질 수 있습니다. 나는 그것이 견인력을 얻길 바란다. –