defaultProps
에 할당하는 객체에도 타입을 지정해야 한다??개발을 하다보니 내가 작성했던 컴포넌트에 styled
를 지정하려고 했는데 오버로드 관련 에러를 만났다.
그러면 도대체 이런 에러가 왜 뜨는걸까?
매개변수 타입
과 반환 타입
이 다른 여러 함수를 가질 수 있는것을 의미한다.예제
function add(a: string, b: string): string; // 함수 선언
function add(a: number, b: number): number; // 함수 선언
function add(a: any, b: any): any {
// 함수 구현
return a + b;
}
add('타입', '스크립트');
add(1, 2);
add('타입', 2);
// 이 호출과 일치하는 오버로드가 없습니다.
// 오버로드 1/2('(a: string, b: string): string')에서 다음 오류가 발생했습니다.
// 오버로드 2/2('(a: number, b: number): number')에서 다음 오류가 발생했습니다
예제에서 add 함수는 2개의 선언부와 1개의 구현부를 가지고 있다.
주의할 점은 함수 선언부와 구현부의 매개변수 개수가 같아야 한다.
함수 구현부에 any가 자주 사용된다.