작성
·
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> 타입은 배열과 비슷한 타입이 됩니다.