작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
245
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를 필터링 해준다는 의미부여를 하기 위함인지 기능적으로도 차이가 있는건지 알고 싶습니다.