특정 함수 타입을 다른 함수 타입으로 취급해도 괜찮은 가를 판단
1. 반환값의 타입이 호환되는가
2. 매개변수의 타입이 호환되는가
number에 number 리터럴로 호환 불가능
다운캐스팅이 되면 안됨.
type A = () => number;
type B = () => 10;
let a: A = () => 10;
let b: B = () => 10;
a = b
(큰개념) = (작은 개념) //가능
b = a
(작은 개념) = (큰개념) //불가능
오류 발생이유
함수타입은 매개변수 기준으로 호환성을 확인함.
❌함수 호환은 업케스팅이 불가능하다.
⭕함수 호환은 다운캐스팅이 가능하다.
할당하려는 함수가 매개변수가 더 많아야한다.