🖥️ Rest parameter 개념
TypeScript에서 Rest parameter는 함수의 파라미터로서 사용 되며, 함수가 임의의 개수의 인자를 받을 수 있게 해준다. Rest parameter는 함수 정의에서 세 개의 점(...)으로 표시되며, 이는 나머지 모든 인자를 배열로 수집한다는 것을 의미한다.
간단하게 Rest parameter 개념 설명을 해보자.
함수에 어떤 parameter가 몇 개 들어올지 미리 정의가 불가능한 경우가 있다. 이럴경우 점(...)으로 Rest parameter를 만들어 주면된다.
function Add(...a){
console.log(a)
}
Add(1,2,3,4,5)
- Rest parameter는 다른 일반 파라미터 뒤에만 나올 수 있다.
- Rest parameter 자리에 넣은 값들은 전부 [ ] 안에 담겨 있다.
🖥️ Rest parameter 타입 지정
function concatenateStrings(separator: string, ...strings: string[]): string {
return strings.join(separator);
}
const result = concatenateStrings(", ", "Hello", "World", "!");
console.log(result); // 출력: Hello, World, !
위 코드에서 concatenateStrings 함수는 separator와 나머지 모든 문자열을 받아 이들을 연결한 문자열을 반환한다. Rest parameter로 선언된 strings는 배열로 처리되어 함수 내부에서 사용된다.
주요 포인트만 설명해 본다면,
- ...string: string[ ] : Rest parameter로 선언되어 있다. 이것은 함수가 여러 개의 문자열을 받을 수 있다는 것을 나타낸다.
- 함수 호출 : concatenateStrings(", ", "Hello", "World", "!") 에서 separator는 ", " 이고, 나머지 문자열들은 배열로 전달된다.
- strings.join(separator) : 함수 내에서 Rest parameter인 strings는 배열로 취급되기 때문에 배열 메서드인 join을 사용하여 배열 요소를 구분자(separator)로 연결한다.
🖥️ Spread operator와 다르다.
점 세개(...)를 붙이는 경우가 또 있다. array 혹은 object 괄호를 벗기고 싶을 때 왼쪽에 사용한다.
let arr = [3,4,5];
let arr2 = [1,2, ...arr]
console.log(arr2)
🖥️ Destructuring의 개념
TypeScript에서 Destructuring은 배열이나 객체를 비구조화하여 그 요소를 개별 변수로 추출하는 것을 의미한다. 배열 또는 객체에서 원하는 값만 추출하여 변수로 선언할 수 있어 코드를 간결하게 만들 수 있다.
let human = { student : true, age : 20 }
let student = human.student;
let age = human.age
위 코드는 JavaScript에서 array, object 안에 있는 데이터를 빼서 변수로 만들고 싶을 때 쓰는 코드이다. 위 코드보다 더 간결하고 빠르게 작성하기 위해 Destructuring을 사용한다.
let human = { student : true, age : 20 }
let { student, age } = { student : true, age : 20 }
위 코드처럼 쓰면 변수로 뺄 수 있다. 이것을 Destructuring 문법이라고 한다.
🖥️ 배열 Destructuring
const numbers: number[] = [1, 2, 3, 4, 5];
const [first, second, ...rest] = numbers;
console.log(first); // 출력: 1
console.log(second); // 출력: 2
console.log(rest); // 출력: [3, 4, 5]
위 코드에서 [ first, second, ...rest] 부분이 배열 Destructuring 이다. 배열의 첫 번째 요소는 first 변수에 할당되고, 두 번째 요소는 second 변수에 할당 된다. 나머지 요소들은 rest 배열에 할당된다.
🖥️ 객체 Destructuring
const person = { name: "John", age: 30, city: "New York" };
const { name, age } = person;
console.log(name); // 출력: John
console.log(age); // 출력: 30
위 코드에서 { name, age } 부분이 객체 Destructuring 이다. 객체의 속성 이름과 일치하는 변수에 값을 할당한다. 객체 Destructuring은 변수의 이름을 속성 이름과 일치시키는 것이 일반적이다.
🖥️ 함수 매개변수에서의 Destructuring
function printPersonInfo({ name, age }: { name: string; age: number }): void {
console.log(`Name: ${name}, Age: ${age}`);
}
const person = { name: "Alice", age: 25 };
printPersonInfo(person);
// 출력: Name: Alice, Age: 25
함수의 매개변수에서도 객체 Destructuring을 사용할 수 있다. 이렇게 하면 함수 내에서 객체의 특정 속성에 직접 접근할 수 있다.
'👨💻 TypeScript' 카테고리의 다른 글
TypeScript - public, private (0) | 2024.03.04 |
---|---|
TypeScript - TypeScript never type (0) | 2024.03.04 |
TypeScript - 타입스크립트 Interface (2) | 2024.02.28 |
TypeScript - Class types (2) | 2024.02.27 |
TypeScript - DOM Manupulation (0) | 2024.02.26 |