Inflearn brand logo image

인프런 커뮤니티 질문&답변

최병국님의 프로필 이미지
최병국

작성한 질문수

[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편

forEach, map 제네릭 분석

forEach 제네릭 관련 문의

작성

·

40

·

수정됨

0

문의1)
interface Array<T> {

forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;

}

 

위 인터페이스를 보고 호출값을 객체값 또는 문자형이 아닌 배열형 [ 1, 2, 3 ] 으로 호출을 하고 있는데요.

어디에서 힌트를 얻어 배열형으로 호출을 하신건지 궁금합니다.

 

문의2)

만약 아래와 같이 되어 있어도 배열형으로 호출을 해도 되는지 궁금합니다.

interface Test<T> {

aa(callbackfn: (value: T, index: number ) => void ): void;

}

 

문의3)

만약 바로 위 Test 인터페이스에 대해 배열로만 제한을 하고 T 타입에 대해 호출하는 순간의 타입으로 제한하고자 한다면 어떻게 정의를 해줘야 할까요?

 

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

배열이라는 것에 대한 인터페이스는 따로 있습니다. [key: number]: T 이런 식으로요.

interface Test<T> {
  [key: number]: T;
  length: number;
  aa(callbackfn: (value: T, index: number ) => void ): void;
}

이런식으로 하면 Test<T> 타입은 배열과 비슷한 타입이 됩니다.

최병국님의 프로필 이미지
최병국

작성한 질문수

질문하기