TypeScript - 함수: 초보자 가이드

안녕하세요,编程에 도전하는 여러분! 오늘 우리는 TypeScript 함수의 세상으로 흥미로운 여정을 떠납니다. 코드를 한 줄도 작성해본 적이 없어도 걱정하지 마세요 - 여러분의 친절한 안내자로서, 우리는 단계별로 이를 탐구할 것입니다. 이 튜토리얼의 끝을 맺을 때, TypeScript의 함수로 무엇을 할 수 있는지 깜짝 놀라실 것입니다!

TypeScript - Functions

함수는 무엇인가?

자, 구체적인 내용에 들어가기 전에 함수가 무엇인지 이해해봅시다. 함수를 재사용 가능한 레시피라고 생각해보세요. 여러분이 케이크를 만들기 위해 레시피를 따르는 것처럼, 함수는 프로그램에서 특정 작업을 수행하는 지시의 집합입니다.

TypeScript의 간단한 함수를 보여드리겠습니다:

function greet(name: string): string {
return `Hello, ${name}!`;
}

console.log(greet("Alice")); // 출력: Hello, Alice!

이 예제에서 greet은 우리의 함수입니다. 이 함수는 name을 입력으로 받고 인사 메시지를 반환합니다. 매개변수 뒤와 괄호 뒤에 오는 : string은 함수가 문자열을 입력으로 받고 문자열을 반환한다는 것을 나타냅니다.

선택적 매개변수

occasionally, you might want to make a parameter optional. In TypeScript, you can do this by adding a ? after the parameter name.

function introduce(name: string, age?: number): string {
if (age) {
return `Hi, I'm ${name} and I'm ${age} years old.`;
} else {
return `Hi, I'm ${name}.`;
}
}

console.log(introduce("Bob")); // Output: Hi, I'm Bob.
console.log(introduce("Charlie", 30)); // Output: Hi, I'm Charlie and I'm 30 years old.

이 함수에서 age는 선택적입니다. 제공된다면, 우리는 그것을 소개에 포함시키고; 그렇지 않다면, 건너뜁니다.

나머지 매개변수

나머지 매개변수는 여러 매개변수를 배열로 처리할 수 있게 해줍니다. "나는 몇 개의 재료를 줄지 모르지만, 내 레시피에서 그것들을 모두 사용하겠다!"라고 말하는 것과 같습니다.

function makeShake(...fruits: string[]): string {
return `I made a shake with ${fruits.join(", ")}.`;
}

console.log(makeShake("banana")); // Output: I made a shake with banana.
console.log(makeShake("strawberry", "mango", "kiwi")); // Output: I made a shake with strawberry, mango, kiwi.

...fruits 문법은 TypeScript에게 모든 제공된 인자들을 배열 fruits에 넣으라고 합니다.

기본 매개변수

기본 매개변수는 예비 계획과 같습니다. 누군가가 값을 제공하지 않는다면, 우리는 기본 값을 사용합니다.

function orderCoffee(size: string = "medium", type: string = "latte"): string {
return `You ordered a ${size} ${type}.`;
}

console.log(orderCoffee()); // Output: You ordered a medium latte.
console.log(orderCoffee("large")); // Output: You ordered a large latte.
console.log(orderCoffee("small", "espresso")); // Output: You ordered a small espresso.

사이즈나 타입을 지정하지 않는다면, 기본적으로 중간 크기의 라떼를 주문합니다. 얼마나 편리한지!

익명 함수

익명 함수는 이름이 없는 비밀 요원입니다 - 그들은 이름이 없습니다! 그들은 종종 사용될 때마다 한 번씩만 사용되는 빠른 함수로 사용됩니다.

let greet = function(name: string): string {
return `Hello, ${name}!`;
};

console.log(greet("David")); // Output: Hello, David!

여기서 우리는 익명 함수를 greet 변수에 할당했습니다. 그런 다음 greet를 정상적인 함수처럼 사용할 수 있습니다.

함수 생성자

함수 생성자는 함수를 동적으로 생성하는 방법입니다. 로봇을 만들어 주는 것처럼, 주어진 지시에 따라 작업을 수행할 수 있는 로봇을 만드는 것과 같습니다.

let multiply = new Function('a', 'b', 'return a * b');

console.log(multiply(4, 5)); // Output: 20

이 예제에서 우리는 두 수를 곱하는 함수를 생성하고 있습니다. 마지막 인자는 항상 함수 본문이며, 나머지는 매개변수 이름입니다.

재귀와 TypeScript 함수

재귀는 함수가 자신을 호출하는 것입니다. 러시아 nesting 드롭 - 각 드롭은 자신의 더 작은 버전을 포함하고 있습니다.

function countdown(n: number): void {
if (n <= 0) {
console.log("Blast off!");
} else {
console.log(n);
countdown(n - 1);
}
}

countdown(3);
// Output:
// 3
// 2
// 1
// Blast off!

이 함수는 주어진 수에서 0으로 내려갑니다. 그것은 자신을 더 작은 수로 호출하여 0에 도달할 때까지 계속합니다.

람다 함수

람다 함수, 또는 화살표 함수는 함수를 작성하는 간단한 방법입니다. 그들은 함수의 텍스트 축약어와 같습니다!

let add = (a: number, b: number): number => a + b;

console.log(add(3, 4)); // Output: 7

이 압축된 문법은 짧고 간단한 함수에 특히 유용합니다.

문법 변형

TypeScript는 함수를 정의하는 다양한 방법을 제공합니다. 다음 표는 다양한 문법을 요약합니다:

문법 예제
함수 선언 function greet(name: string): string { returnHello, ${name}!; }
함수 표현식 let greet = function(name: string): string { returnHello, ${name}!; };
화살표 함수 let greet = (name: string): string =>Hello, ${name}!;
객체 내 메서드 let obj = { greet(name: string): string { returnHello, ${name}!; } };
비동기 함수 async function fetchData(): Promise<void> { /* ... */ }

함수 오버로드

함수 오버로드는 동일한 함수에 대해 여러 함수 서명을 정의할 수 있게 해줍니다. 같은 요리에 대해 다양한 레시피를 가지고 있는 것처럼, 다양한 재료에 따라 다른 레시피를 가질 수 있습니다.

function makeNoise(animal: "cat"): string;
function makeNoise(animal: "dog"): string;
function makeNoise(animal: string): string {
switch(animal) {
case "cat":
return "Meow";
case "dog":
return "Woof";
default:
return "Unknown animal";
}
}

console.log(makeNoise("cat")); // Output: Meow
console.log(makeNoise("dog")); // Output: Woof

이 함수는 다양한 동물에 대해 적절한 소리를 내도록 처리할 수 있습니다.

여러분이 오늘 많은 내용을 다루었습니다. 기본 함수에서 재귀와 함수 오버로드에 이르기까지 다양한 개념을 다루었습니다. 코드를 배우는 것은 새로운 언어를 배우는 것과 같습니다. 연습과 인내가 필요합니다. 이 개념들을 실험하고 자신만의 함수를 만들어보세요. 언제든지 복잡한 프로그램을 쉽게 작성할 수 있을 것입니다. 즐겁게 코딩하고, 다음 강의에서 다시 만나겠습니다!

Credits: Image by storyset