const arrow1 = (a: number,b: number) : number => {return a+b}
console.log(arrow1(1,2))
실행결과 : 3
Arrow function의 경우 ECMAScript의 최신버전에서도 있었기 때문에
딱히 어색하진 않다.
타입스크립트여서 다른점은 타입을 지정해줘야한다. 반환 타입이라던지 아니면 파라미터의 타입을 지정해줘야한다.
export const init = (callback: () => void): void =>{
console.log('default initiallization finished')
callback();
console.log('all initiallization finished')
}
cb_init.ts
import {init} from './init'
init(()=>console.log('custom initialization finished'))
index.ts
실행결과 :
default initiallization finished
custom initialization finished
all initiallization finished
화살표 함수를 응용해서 콜백함수를 만들었다.
매개변수 형태로 동작하는 함수를 콜백함수라고 한다고 한다.
솔직히 콜백지옥 이런거 초짜라서 공감잘 안됐는데
이렇게 예제를 보니깐 왜 지옥이 만들어지는지 알것같다.
함수안에 또다른 함수를 넣어서 중첩함수를 구현할 수 있다.
const calc = (value: number, cd:(number)=>void): void =>{
let add = (a,b) => a+b;
function multiply(a,b) {return a*b}
let result = multiply(add(1,2),value)
cd(result)
}
calc(30,(result:number) => console.log(`result is ${result}`))