타입스크립트에서 함수의 반환 타입을 지정해줄 수 있다.
function doSomething(): number {
return 42;
}
위 코드의 함수는 반환타입이 number 인 함수이다.
콜백의 경우에도 위와 같은 형태로 타입을 지정할 수 있다.
function callMeMaybe(callback: () => void):void {
cb()
}
그러면 위의 코드를 합해본다면 런타임 오류가 발생하는가 발생하지 않는가 ?
doSomething의 경우 number 타입을 반환하는 함수이고 callMeMaybe의 callback 함수의 반환타입은 void 라서 반환타입이 전혀 다르기때문이다.
function doSomething(): number {
return 42;
}
function callMeMaybe(callback: () => void): void {
callback();
}
callMeMaybe(doSomething);
결과는 오류가 발생하지 않는다.
왜 그런가 ?