작성
·
34
0
저는 concat 함수를 이런 식으로 구현해보았는데요,
여기서 as unknown as Arr<number>
를 사용하지 않을 수는 없을까요?
lib.es5.d.ts 에서는 concat(...items: (T | ConcatArray<T>)[]): T[];
이런 식으로 정의하고 있는데, 여기서 ConcatArray
의 쓰임세가 궁금합니다.
ConcatArray
의 정의를 찾아가보니
interface ConcatArray<T> {
readonly length: number;
readonly [n: number]: T;
join(separator?: string): string;
slice(start?: number, end?: number): T[];
}
이런 식으로 되어있던데 보통 Array<T>와 어떤 점이 다른 걸까요..?
답변 2
0
0
interface Arr<T>{
concat<U>(...values: Arr<U>[]): (T | U) [];
}
const a: Arr<number> = [1,2,3] as unknown as Arr<number>;
const b: Arr<number | string> = [1, '2', 3, '4'] as unknown as Arr<number | string>;
const c = a.concat(b, a)
const d = b.concat(a)
원본 코드입니다!
감사합니다! 한번 읽어보겠습니다