더북(TheBook)
[1, 2, 3].myForEach(() => {});
[1, 2, 3].myForEach((v, i, a) => { console.log(v, i, a) });
[1, 2, 3].myForEach((v, i) => console.log(v));
[1, 2, 3].myForEach((v) => 3);
['1', '2', '3'].myForEach((v) => {
  console.log(v.slice(0));
});
// Property 'slice' does not exist on type 'number'.
[true, 2, '3'].myForEach((v) => {
  if (typeof v === 'string') {
    v.slice(0);
  } else {
    v.toFixed();
  }
});
// Property 'slice' does not exist on type 'never'.

interface Array<T> {
  myForEach(callback: (v: number, i: number, a: number[]) => void): void;
}

다시 에러가 발생합니다. 반대로 테스트 사례 중 v.toFixed()에서는 에러가 발생해야 하는데 발생하지 않습니다. 에러가 발생하는 상황만이 문제가 아닙니다. 에러가 발생해야 하는데 발생하지 않는 상황도 문제입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.