자바스크립트처럼 function
키워드를 사용해서 함수 선언가능.
자바스크립트랑 다른점은 parameter와 리턴값에 type을 지정해줄 수 있음.
function name(parameter: type, parameter:type,...): returnType {
// do something
}
아래 add()
함수는 number
type의 parameter 2개를 받음.
add()
를 불렀을때 컴파일러가 함수에 넘겨진 인자가 number type인지 체크해줌. 따라서 add()
에는 인자로 number type밖에 못넣어줌.
function add(a: number, b: number): number {
return a + b;
}
아래처럼 string type을 넣으면 에러가나옴.
let sum = add('10', '20');
add()
에서 ()다음에 나오는 : number
는 리턴값의 type을 나타냄.
함수가 return type을 가지고 있으면 컴파일러가 모든 return
문을 체크해서 타입이 맞는지 확인함.
만약에 함수가 값을 리턴하지 않으면 아래처럼 void
type을 사용하면 됨. void
는 함수가 값을 리턴하지 않음을 나타냄.
function echo(message: string): void {
console.log(message.toUpperCase());
}
return type을 명시하지 않으면 적절한 type을 추론해줌.
function add(a: number, b: number) {
return a + b;
}
위 코드에서 컴파일러는 return type을 number
로 추론함.
위 처럼 간단한게아닐 경우에 컴파일러는 type을 union
이나 any
로 추론함.
- parameter와 return type을 명시해서 함수내에서 타입 체킹을 확실하게 하기.