호출 시그니쳐
구현
호출 시그니쳐는 타입 별칭의 함수버전이라고 보면 된다.
타입 별칭은 이런 것이다.
type Age=number;
type Person={
name:string,
age:Age
};
타입을 따로 분리해 Person.age는 number만이 선언될 수 있도록 하였다 위 코드는 아래와 같다.
type Person={
name:string,
age:number
}
당장 보기에는 아래 코드가 깔끔해 보이지만
만들고 있는 프로그램의 크기가 커질수록 위의 코드가 좋아질 것 같다.
그러면 호출 시그니쳐를 알아보자.
이는 함수버전의 타입 별칭이다.
const sum=(a:number,b:number):number=>{
return a+b
}
위와 같은 함수를 호출 시그니쳐로 표현해보면
type sum=(a:number,b:number)=>number
이렇게 표현할 수 있게 된다.
그렇다면
type hap=(a:number,b:number)=>number;
const duhagi:hap=(a,b)=>{
return a+b;
}
이런식으로 작성할 수 있다.
함수의 타입을 미리 지정해준 것이다.
만일 return이 void타입인 경우
type Log=(msg:string,userId?:string)]=>void
let log:Log=(
msg,userId='Not signed in' // 초기화 가능
)=>{
console.log(msg)
}
이런식으로 return을 주지 않으면 된다.