ts-book icon indicating copy to clipboard operation
ts-book copied to clipboard

[p.206, 제안] 2번째 예제코드 is never 사용 시 예외사항

Open wiseguy77 opened this issue 1 year ago • 1 comments

is never로 콜백함수 반환값 타입을 좁힐 경우, 콜백함수가 true/false 중 어떤 것을 반환해도 동일하게 never[] 타입 never 타입 자체가 반환값이 없다는 의미이기 때문에 true/false 관계없이 never로 타입이 좁혀지는 것이라고 이해했습니다.

const r2 = [1, 2, 3].myFilter((v, i, a): v is never => false); // 예제코드 타입 -> never[]
const r2 = [1, 2, 3].myFilter((v, i, a): v is never => true);  // 콜백함수 리턴값 변경 후 타입 -> never[] 

다만, p.153 마지막 줄에 '반환값이 true일 때 매개변수의 타입도 is 뒤에 적은 타입으로 좁혀집니다.'라고 설명되어 있습니다. is never로 사용될 경우 예외적으로 항상 never로 타입이 결정된다는 설명이 추가되면 좋을 것 같습니다.

wiseguy77 avatar Aug 29 '23 15:08 wiseguy77