함수를 선언하며 파라미터, 리턴 타입을 정할 수도 있지만,
함수 내용을 구체적으로 작성하기 전에도 타입 설정이 가능
// let greet: Function;
// example 1
let greet: (a: string, b: string) => void;
greet = (name: string, greeting: string) => {
console.log(`${name} says ${greeting}`);
};
// example 2
let calc: (a: number, b: number, c: string) => number;
calc = (numOne: number, numTwo: number, action: string) => {
if (action === "add") {
return numOne + numTwo;
} else {
return numOne - numTwo;
}
};
// example 3
type user = { name: string; age: number };
let logDetails: (obj: user) => void;
logDetails = (ninja: user) => {
console.log(`${ninja.name} is ${ninja.age} years old`);
};
출처 : https://www.youtube.com/watch?v=TZNbzyY6hMU&list=PL4cUxeGkcC9gUgr39Q_yD6v-bSyMwKPUI&index=10