반응형
이번엔 type annotation 과 type inference로 함수를 정의하는 것을 알아보자.
우선 type annotation으로 정의하는 것을 보면
const add = (a:number ,b :number) :number => {
return a + b;
}
type inference로 정의하는 법을 보면
const add = (a:number ,b :number) => {
return a + b;
}
인자로 받는 것들은 타입을 써주지만 리턴하는 값에 대한 타입 지정이 빠져있다. 타입스크립트는 타입에 관해 엄격하기 때문에 2개의 인자로 받는 것들이 number 이니 리턴 값도 number로 추론해 냈다.
내가 본 자료에서는 함수 정의에서 만큼은 type annotation을 비록 몇글자 더 적어야해서 귀찮지만 사용하는 것을 권장한다.
그 이유는 return 값 때문인데
return statement 가 없어도 실제 코드 편집기에서도 전혀 에러를 띄고 있지 않다.
return을 하지 않았기 때문에 void를 반환하는 것으로 알고 그냥 넘기는 것이니 실수하지 않기 위해서라도 return type 까지 써주어 진행하는게 나을 것 같다.
반응형