본문 바로가기
프론트엔드

인터페이스 tsx에 뿌리기

by 쩨이1 2024. 5. 8.

인터페이스는 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