[1, 2, 3].myForEach(() => {});
interface Array<T> {
myForEach(callback: () => void): void;
}
에러가 사라졌습니다. 그러면 제대로 타이핑한 것일까요? 아닙니다. 다양한 테스트 사례를 만들어서 에러가 발생하는지 확인해야 합니다.
[1, 2, 3].myForEach(() => {});
[1, 2, 3].myForEach((v, i, a) => { console.log(v, i, a) });
// Argument of type '(v: any, i: any, a: any) => void' is not assignable to parameter of type '() => void'.
[1, 2, 3].myForEach((v, i) => console.log(v));
// Argument of type '(v: any, i: any) => void' is not assignable to parameter of type '() => void'.
[1, 2, 3].myForEach((v) => 3);
// Parameter 'v' implicitly has an 'any' type.
// Type 'number' is not assignable to type 'void'.
interface Array<T> {
myForEach(callback: () => void): void;
}