• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

제네릭 타입 제한 중..

21.03.26 15:03 작성 조회수 134

1

안녕하세요. 강의 재밌게 보면서 타입스크립트를 배우고 있는 학생입니다.

강의중 제네릭 타입 제한에 대한 내용에서, 텍스트의 길이를 구하는 예시인데

다음과 같이 제네릭에 배열로 타입 제한을 두면서, 배열의 길이에 대한 예시로 바껴서 혼란스럽습니다. 여전히 forEach 내부에서 text에 대한 길이는 에러가 나는 상황이구요.. 예시가 적합한지 의문이 들어 질문 남겨드립니다.

function logTextLength<T>(text: T[]): T[] {
console.log(text.length);
text.forEach(function (text) {
console.log(text);
});
return text;
}
logTextLength<string>(["hi", "abc"]);

답변 1

답변을 작성해보세요.

0

안녕하세요 현준님, 좋은 질문 주셨네요. 질문하신게 text.forEach() 안에서 length가 오류난다고 말씀하신 건가요? logText() 함수 안에서 length는 접근하실 때 문제가 없을 것 같은데 궁금하신 내용이 어떤 건지 잘 이해가 안가네요 :)

성현준님의 프로필

성현준

질문자

2021.03.29

음.. 다시 설명드리면

1. 강의 중 처음 logTextLength라는 함수는 텍스트의 길이를 구하는 역할을 가졌습니다.
2. 그 다음 갑자기 텍스트의 길이와는 무관하게 배열을 제네릭 타입에 제한을 두면서 배열의 길이에 대하여 에러를 피하게 설정하셨습니다.

그래서 제가 혼란스러운 것은

예시가 텍스트의 길이를 구한다 => 배열로 제한을 두면 길이에 대한 에러가 발생하지 않는다. 로 갑자기 넘어간 이유가 매끄럽지 않다는 것입니다. 텍스트의 길이와 배열 요소의 갯수를 구하는 것은 별개니까요.