function square(num: number) {
return num * num;
}
square(3);
함수도 타입을 정해주지 않으면 any
타입이 된다
👉 애너테이션을 달아주는 것이 좋음!
const doSomething = (person: string, age: number, isFunny: boolean) => {};
doSomething("ChickenFace", 76, false);
함수는 원하는 만큼의 파라미터를 가질 수 있고, js와 마찬가지로 호출하는 순서가 중요하다
function greet(person: string = "stranger") {
return `Hi there, ${person}!`;
}
greet();
greet("Tony");
파라미터인 person에 string
애너테이션을 설정하고, 기본값으로 "stranger"를 할당했다
greet함수를 빈 파라미터로 호출하면, "Hi there, stranger"가 출력되고 "Tony"를 호출하면 "Hi there, Tony"가 출력된다
function circle(num: number) {
num * num;
}
circle(2);
함수 내에 return
을 써주지 않으면 void
타입이다
function rando(num: number) {
if (Math.random() < 0.5) {
return num.toString(); // 랜덤한 숫자가 0.5보다 작으면 그 숫자를 문자열로 반환하고
}
return num; // 그렇지 않으면 number 타입 그대로 반환해라
}
반환값의 애너테이션을 설정하지 않을 경우, 함수 내부에서 파라미터인 num의 타입을 지정해서 반환하게 했기 때문에 rando 함수의 반환값은 string
과 number
둘 다 될 수 있다
function printTwice(msg: string): void {
console.log(msg);
console.log(msg);
}
파라미터의 타입은 string
이지만 함수 내부에 return이 없기 때문에 = 아무것도 반환하지 않기 때문에 void
타입이다
function gameLoop(): never {
while (true) {
console.log("GAME LOOP RUNNING!");
}
}
이 while문은 무한히 돌아가기 때문에 아무것도 반환되는 게 없어야 한다
void
는 undefined 상태로 반환하기 때문에 값이 존재하고, 이 함수가 무엇을 반환하든 상관하지 않는다
never
는 이 함수가 절대 반환할 기회를 가지게 하지 않는다
Write a function called "twoFer" that accepts a person's name
"twoFer" 함수를 사용해서 한 사람의 이름인 문자열을 인수로 허용하고
It should return a string in the format "one for , one for me"
문자열을 반환해라. 애너테이션을 확실히 사용해서!
If no name is provided, it should default to "you"
twoFer() => "One for you, one for me" (기본값 you)
twoFer("Elton") => "One for Elton, one for me"
function twoFer(name: string = "you"): string{
return `One for ${name}, one for me`
}
console.log(twoFer());
console.log(twoFer("Elton"));
Write a isLeapyear() function that accepts a year and returns true/false depending on if the year is a leap year
isLeapYear(2012) => true
isLeapYear(2013) => false
isLeapyear 함수를 사용해서 불리언 값을 반환해라. 윤년인지 아닌지 여부에 대해서
2012년은 윤년이기 때문에 true, 2013년은 윤년이 아니라 false.
To determine whether a year is a leapyear, use this "formula":
A YEAR IS A LEAPYEAR IF
const isLeapyear = (year: number): boolean => {
if(year % 4 === 0 && year % 100 !== 0) {
return true
} else if(year % 400 === 0) {
return true
}
return false;
}