// 함수 - 기본적으로 타입 추론 가능
function add1(n1: number, n2: number): number {
return n1 + n2;
}
// void 타입
function printResult1(num: number): void {
console.log('Result: ' + num);
}
// undefined 타입
function printResult2(num: number): undefined {
console.log('Result: ' + num);
return;
}
function andAndHandle(n1: number, n2: number, cb: (num: number) => number) {
const result = n1 + n2;
let res = cb(result);
console.log(res);
}
printResult1(add1(5, 12));
let combineValues1: Function;
combineValues1 = add1; // 함수를 변수에 할당
combineValues1 = printResult1; // undefined 타입이므로 에러 발생
console.log(combineValues1(8, 8));
// 함수 매개변수 타입과 반환 타입을 정의
let combineValues2: (a: number, b: number) => number; // 함수 타입 정의
combineValues2 = add1;
//combineValues2 = printResult1; // 에러 발생
console.log(combineValues2(8, 8));
andAndHandle(10, 20, (result) => {
console.log(result);
return result;
});