• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

filter item is T vs item is S

23.06.26 16:03 작성 조회수 211

0

filter<S extends T>(callbackFn: (item: T) => item is T): S[]; // item is T
// filter<S extends T>(callbackFn: (item: T) => item is S): S[]; // item is S
const c: Array<string | number> = [1, '2', 3];
const a7 = c.filter((item): item is number => typeof item === 'number');

위 코드에서 콜백함수의 반환 타입가드를 item is T로 하든 item is S로 하든 a7 변수는 number[] 로 추론되는데

왜 lib.es5.d.ts에선 item is S로 하는지 궁금합니다.

단순히 T의 부분집합 S를 필터링 해준다는 의미부여를 하기 위함인지 기능적으로도 차이가 있는건지 알고 싶습니다.

답변 1

답변을 작성해보세요.

0

지금 위에 filter를 새로 정의하신건가요?

아래 c.filter에서 그 filter를 안 쓰고 있을 것 같은데요?