섹션9. 인덱스드 액세스 타입 질문
해당 강의 다른분의 질문과 유사할 것 같은데요...
배열 요소의 타입 추출하기 part에서
type PostList = {
title: string;
content: string;
author: {
id: number;
name: string;
age: number;
};
}[];위와 같이 배열 안에 들어가는 타입이 정해져있는 것이 아니라
string도 들어가고, 객체도 들어가는데 그 객체 안에 들어가는 프로퍼티도 다양하다면,
강의에서 언급해주신 인덱스드 액세스 타입으로 타입을 추출하는 것은 부적절한가요?
답변 2
1
안녕하세요 이정환입니다.
우선 강의에서 이런 타입을 직접 정의한 이유는 인덱스드 엑세스 타입을 사용해보기 위해서입니다.
보통은 Item의 타입을 별도로 정의한 다음 Item[] 같은 형태로 사용합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
gga01075님, 질문 주신 내용에 대해 답변을 드리겠습니다.
인덱스드 액세스 타입은 특정 타입에서 특정 프로퍼티의 타입을 추출하는 용도로 활용됩니다. 그러나 배열에 다양한 타입이 섞여 있거나 배열의 각 요소의 타입이 달라야 하는 경우에는 인덱스드 액세스 타입이 효과적이지 않을 수 있습니다. 이럴 땐 좀 더 복잡한 타입 정의가 필요합니다.
- 유니언 타입 사용: 배열에 여러 타입이 혼재되어 있을 경우, 유니언 타입으로 그 배열의 요소를 정의하면 유연하게 관리할 수 있습니다.
”`typescript
type Post = {
title: string;
content: string;
author: {
id: number;
name: string;
age: number;
};
} | string;
type PostList = Post[];
2. **타입 가드 사용**: 배열 요소의 타입을 구체적으로 다루기 위해 타입 가드를 사용할 수 있습니다.
```typescript
function isPost(item: Post | string): item is Post {
return (item as Post).author !== undefined;
}
이와 관련된 더 상세한 설명은 아래의 유사 질문과 그 답변에서 확인하실 수 있습니다:
- 인덱스드 엑세스 배열 타입 이해가 안가는 부분이있어요
제가 제공해 드린 답변이 도움이 되셨길 바라며, 추가적으로 궁금한 점이 있으시면 언제든지 질문해 주세요. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
제네릭 클래스 핸드북 페이지가 undefined라고 나옵니다.
0
7
1
적절한 타입 찾기 React.ChangeEvent<HTMLInputElemen>
0
29
2
outDir 옵션 추가 후 컴파일 오류 질문
0
64
1
호출 시그니처 질문
0
66
2
서로소 유니언 타입이 discriminated union과 동의어 인가요?
0
75
2
조건부타입소개 중 함수오버로딩 활용 시 인수의타입과 함수의 반환값의 타입이 깨지는 문제
0
67
1
할인쿠폰 관련하여
0
159
2
프론트엔드에서의 인터페이스활용
0
94
2
안녕하세요 이정환님!
0
92
1
Node.js 설치에 관한 질문입니다.
0
79
2
함수 타입 호출 시그니처
0
58
1
35강. 모듈 보강은 라이브러리 파일을 직접 편집해야 하나요?
0
64
2
인터페이스 문법이 있는데 타입 별칭 문법은 왜 있나요?
0
118
4
마우스 호버 시 정보
0
92
2
vite으로 리액트 빌드하기를 업데이트해주세요.
1
89
2
타입가드를 만들어 사용하는 이유가 궁금합니다.
0
83
2
섹션 12가 너무 어려운데... 정상이겠죠..?
0
137
2
선생님.. 알고리즘도 강의해주시면안되나요
0
100
2
선생님은 어떻게 이런걸 아세요?
0
129
1
type: module
0
97
2
7:17초 업캐스팅 질문이있습니다!
0
76
1
슈퍼타입질문
1
63
2
프로젝트 설치
0
104
2
enum은 비원시 타입이면서 열거형 타입이 되는건가요?
0
69
2





