Function Types (signatures) in TypeScript
Description
This is used to describe the general structure of a function, the argument it takes in and the type of data it returns.
// example 1
let greet: (a: string, b: string) => void;
greet = (name: string, greeting: string) => {
console.log(`${name} says ${greeting}`)
}
greet('oge', 'hi');
//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
let logDetails: (obj: { name: string, age: number }) => void;
logDetails = (ninja: { name: string, age: number }) => {
console.log(`${ninja.name} is ${ninja.age} years old`)
}
logDetails({ name: 'bolu', age: 2 })
//using type aliases with example 3;
let logDetails: (obj: { name: string, age: number }) => void;
type person = { name: string, age: number };
logDetails = (ninja: person) => {
console.log(`${ninja.name} is ${ninja.age} years old`)
}
logDetails({ name: 'bolu', age: 2 })