해결된 질문
작성
·
109
0
해당 강의 다른분의 질문과 유사할 것 같은데요...
배열 요소의 타입 추출하기 part에서
type PostList = {
title: string;
content: string;
author: {
id: number;
name: string;
age: number;
};
}[];
위와 같이 배열 안에 들어가는 타입이 정해져있는 것이 아니라
string도 들어가고, 객체도 들어가는데 그 객체 안에 들어가는 프로퍼티도 다양하다면,
강의에서 언급해주신 인덱스드 액세스 타입으로 타입을 추출하는 것은 부적절한가요?
답변 2
1
안녕하세요 이정환입니다.
우선 강의에서 이런 타입을 직접 정의한 이유는 인덱스드 엑세스 타입을 사용해보기 위해서입니다.
보통은 Item의 타입을 별도로 정의한 다음 Item[] 같은 형태로 사용합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
gga01075
님, 질문 주신 내용에 대해 답변을 드리겠습니다.
인덱스드 액세스 타입은 특정 타입에서 특정 프로퍼티의 타입을 추출하는 용도로 활용됩니다. 그러나 배열에 다양한 타입이 섞여 있거나 배열의 각 요소의 타입이 달라야 하는 경우에는 인덱스드 액세스 타입이 효과적이지 않을 수 있습니다. 이럴 땐 좀 더 복잡한 타입 정의가 필요합니다.
type PostList = Post[];
2. **타입 가드 사용**: 배열 요소의 타입을 구체적으로 다루기 위해 타입 가드를 사용할 수 있습니다.
```typescript
function isPost(item: Post | string): item is Post {
return (item as Post).author !== undefined;
}
이와 관련된 더 상세한 설명은 아래의 유사 질문과 그 답변에서 확인하실 수 있습니다:
- 인덱스드 엑세스 배열 타입 이해가 안가는 부분이있어요
제가 제공해 드린 답변이 도움이 되셨길 바라며, 추가적으로 궁금한 점이 있으시면 언제든지 질문해 주세요. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.