인터페이스는 TypeScript에서 객체나 구조체의 모양을 정의하는 방법입니다. `Props`라는 인터페이스는 이름이 "Props"이며, 이 안에 `commentListItem`이라는 이름의 항목이 있습니다. 이 항목은 어떤 다른 객체를 가리키는데, 그 객체는 `CommentListItem` 타입이어야 한다는 뜻입니다.
간단하게 말해:
- `Props`는 "이런 모양을 가진 데이터가 필요하다"라고 설명하는 청사진 같은 것입니다.
- `commentListItem`은 `Props`에 있는 항목(필드)이고, 어떤 데이터(객체)를 가리킵니다.
- `CommentListItem`은 그 데이터가 어떤 구조를 가져야 하는지 알려줍니다.
여기서 중요한 것은:
- `Props`는 컴포넌트(React 같은)에서 사용하는 입력 데이터를 정의합니다.
- `commentListItem`이 `CommentListItem` 타입이라는 것은, `CommentListItem` 타입의 데이터가 `Props`에 올 때 어떻게 생겼는지 정한 것입니다.
이제 예를 들어볼게요:
```tsx
interface CommentListItem {
content: string; // 코멘트 내용
author: string; // 코멘트 작성자
}
interface Props {
commentListItem: CommentListItem; // 이 데이터는 위에서 설명한 타입이어야 함
}
```
이렇게 정의하면, `Props`를 사용하는 곳은 `commentListItem`이라는 이름의 데이터를 받아야 합니다. 그 데이터는 `content`라는 텍스트와 `author`라는 텍스트가 있어야 한다는 뜻이죠.
이 인터페이스를 사용하는 예시 컴포넌트는 다음과 같습니다:
```tsx
const CommentComponent: React.FC<Props> = ({ commentListItem }) => {
return (
<div>
<p>내용: {commentListItem.content}</p>
<p>작성자: {commentListItem.author}</p>
</div>
);
};
export default CommentComponent;
```
이 컴포넌트는 `Props` 인터페이스를 사용하여 `commentListItem`이라는 데이터를 받고, 그 데이터 안의 `content`와 `author`를 표시합니다.
이런 식으로 인터페이스는 데이터를 체계적으로 정의하고, 코드에서 "이 데이터는 이런 구조를 가져야 한다"는 것을 보장합니다.
'프론트엔드' 카테고리의 다른 글
테이블 (0) | 2024.05.22 |
---|---|
주소 연결하기 (0) | 2024.05.14 |
import { Outlet, useLocation } from 'react-router-dom'; (0) | 2024.05.12 |
랜더링 (0) | 2024.05.12 |
<Route element={<Container />}> {/* 공통 컨테이너 적용 */} (0) | 2024.05.09 |