function Rest_Array(...a :number[]){
return a; //[1,2,3,4,5]로 반환
}
Rest_Array(1,2,3,4,5);
Spread operator
특정 배열 혹은 객체 값을 복제하는 문법으로 주로 배열을 풀어서 인자로 전달 또는 배열을 풀어서 이용할 때 사용한다.
Rest와 동일하게 ...을 사용하지만 두 문법의 차이점은 Spread는 기존 배열을 해체하고 Rest는 개별요소를 배열 형태로 만들어준다.
let arr = [3,4,5];
let arr2 = [1,2, ...arr] // arr : 3,4,5
console.log(arr2); // [1,2,3,4,5]
Destructuring (구조 분해 문법)
JS 문법으로 객체(Object), 배열의 속성을 해체하여 그 값을 변수에 담을 수 있게 만드는 문법을 말한다.
Object를 Destructuring 할때는 변수, 속성 이름을 맞추는게 편리하다.
Array의 경우는 마음대로 변수를 작성해도 된다.
//JS 보통 array, object 안에 있는 데이터를 뺄때 이렇게 사용하지만.
let Car = { name : 'model3', color : 'red' }
let Car_name = Car.name;
let Car_color = Car.color
//Array 안에 자료 빼기
let [a, b, ...Carname] = ['model3', 'modelY', 'CyberTruck','modelX','modelS'];
a; // 'model3' , b; // 'modelY' , Carname // ['CyberTruck','modelX','modelS']
//구조 분해 문법을 사용하면
let { name, color } = { name : 'model3', color : 'red' }
//name에 model3가 들어가 있어 name을 출력하면 model3 출력
함수 파라미터에도 사용가능하다.
//이유는 함수 파라미터 작성과 변수만드는 문법이 동일하기 때문
//타입지정
type CarSet = {name : string, color : string}
let Car : CarSet = { name : 'model3' , color : 'Red' }
function Car_function ({name, color} : CarSet) {
console.log(name, color); //modelY black 출력
}
//함수 파라미터로 입력 시 name, color라는 변수에 저장
Car_function({ name : 'modelY', color : 'black' })