[typescript] 타입스크립트로 리액트 컴포넌트 작성 시 고려해야 할 사항
타입스크립트를 사용하여 리액트 애플리케이션을 작성하면 정적 타입 검사를 통해 코드의 안정성을 높일 수 있습니다. 하지만 타입스크립트를 이용한 리액트 컴포넌트 작성 시 몇 가지 고려해야 할 사항이 있습니다.
이 글에서는 타입스크립트로 리액트 컴포넌트를 작성할 때 고려해야 하는 사항에 대해 알아보겠습니다.
1. 타입 정의
타입스크립트로 리액트 컴포넌트를 작성할 때 프롭스(Props)와 스테이트(State)에 대한 명확한 타입 정의가 필요합니다.
예시
interface Props {
name: string;
age: number;
}
interface State {
count: number;
}
2. 이벤트 핸들러
이벤트 핸들러를 작성할 때에도 해당 이벤트에 대한 타입을 명시해주어야 합니다.
예시
handleClick = (event: React.MouseEvent<HTMLButtonElement>): void => {
// 이벤트 핸들러 로직
}
3. 라이프사이클 메서드
라이프사이클 메서드를 사용할 때에도 타입을 명시해주어야 합니다.
예시
componentDidMount(): void {
// 라이프사이클 메서드 로직
}
4. Refs 활용
Ref를 사용할 때에도 타입을 명시해주어야 합니다.
예시
const inputRef = React.createRef<HTMLInputElement>();
5. 고차 컴포넌트
타입스크립트에서 고차 컴포넌트를 작성할 경우, Generics를 사용하여 타입을 전달할 수 있습니다.
예시
function HOC<T>(WrappedComponent: React.ComponentType<T>) {
// HOC 로직
return NewComponent;
}
타입스크립트를 사용하여 리액트 컴포넌트를 작성할 때, 위와 같은 사항에 유의하여 개발하면 코드의 가독성과 유지보수성을 높일 수 있습니다.
무엇보다도, 타입스크립트로 작성한 코드는 컴파일 시점에서 타입 에러를 발견할 수 있기 때문에 개발 초기단계에서 많은 버그를 방지할 수 있습니다.
참고 문헌: