참고로 수업 들으면서 아래 사이트의 ide 를 이용해 코드를 작성하고 실행시켜보면서 학습했습니다!
https://www.typescriptlang.org/play
함수는 두 군데에 타입 지정이 가능하다.
- 파라미터
- return 값
function 함수(x :number) :number {
return x * 2;
}
그래서 위처럼 x 라는 파라미터를 number 라는 타입으로 지정하거나
return 값을 number 라는 타입으로 지정이 가능하다.
함수명( ) 의 오른쪽에 return 값의 타입을 적어주면 된다.
void 타입
return 할 자료가 없는 함수라면 return 값의 타입을 void로 설정해줄 수 있다.
function 함수2(x :number) :void { // void는 return 값이 없다는 뜻
console.log(x * 2);
}
만약에 함수2 가 무언가를 return 하려고하면 에러가 날 것이다.
일종의 방지를 설정해주는 것이다.
파라미터를 옵션으로
타입스크립트에서는 파라미터를 옵션으로 둘거면 미리 정의를 해줘야한다.
파라미터 정의를 해놓고, 나중에 실제로 함수를 사용할 때 파라미터를 안써주면 에러가 난다.
파라미터를 옵션으로 주는 방법은 다음과 같다.
function 함수2(x?:number) :void { // void는 return 값이 없다는 뜻
console.log(x * 2);
}
위 코드처럼 x 라는 파라미터 옆에 ? 를 적어준다.
이 물음표는 x : number | undefined 라는 의미이다.
실습해보기
1. 이름을 파라미터로 입력하면 콘솔창에 "안녕하세요 이름" 을 출력해주고, 파라미터를 입력안하면 "이름이 없습니다" 를 출력하는 함수를 만들기
function sayHi(name?: string){
if(name){
console.log(`안녕하세요 ${name}`);
}
else{
console.log(`이름이 없습니다`);
}
}
sayHi('홍길동');
2. 함수에 숫자나 문자를 넣으면 자릿수를 세서 출력해주는 함수
function countLength(x :number | string) :number {
return x.toString().length
}
console.log(countLength('ㅇㄹㅁㅇ'));
3. 결혼 가능 확률을 알려주는 함수
파라미터로 월소득, 집보유여부, 매력점수(상/중/하)를 입력하고
월소득은 만원당 1점, 집보유시 500점(없으면 0점), 매력점수는 상일때만 100점으로 계산
총 점수가 600점 이상이면 "결혼가능"을 return, 그 외에는 아무것도 return 하지 않음
function canMarry(money: number, home: boolean, attractiveness: string) :string|void {
let totalScore = money;
if(home){
totalScore += 500
}
if(attractiveness === '상'){
totalScore += 100
}
if(totalScore >= 600){
return '결혼가능'
}
}
console.log(canMarry(700, false,'상'));
ref: 코딩애플