[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;
}

타입스크립트를 사용하여 리액트 컴포넌트를 작성할 때, 위와 같은 사항에 유의하여 개발하면 코드의 가독성과 유지보수성을 높일 수 있습니다.

무엇보다도, 타입스크립트로 작성한 코드는 컴파일 시점에서 타입 에러를 발견할 수 있기 때문에 개발 초기단계에서 많은 버그를 방지할 수 있습니다.

참고 문헌: