TypeScript

[TS]함수 rest 파라미터, destructuring 할 때 타입지정

MoZZANG 2022. 11. 7. 14:00
rest 파라미터 타입지정은

 

function 전부더하기(...a :number[]){
  console.log(a)
}

전부더하기(1,2,3,4,5)

 

rest 파라미터는 항상 [ ] 안에 담겨오기 때문에 타입지정도 array처럼 해주시면 됩니다. 끝

 

 

 

 

 

 

Destructuring 문법도 함수 파라미터에 사용가능

 

왜냐면 함수 파라미터 작명하는 것도 변수만드는 문법과 똑같아서 그렇습니다

변수만들 때 기존 object에 있던 자료를 파라미터로 집어넣고 싶으면 

 

 

let person = { student : true, age : 20 }

function 함수(a, b){
  console.log(a, b)
}
함수(person.student, person.age)

기존 object에 있던걸 person.student 이렇게 각각 찝어서 집어넣으면 되긴 되는데

destructuring 문법을 이용하면 약간 더 쉽게 사용가능합니다. 

 

 

 

let person = { student : true, age : 20 }

function 함수({student, age}){
  console.log(student, age)
}
함수({ student : true, age : 20 })

 

실은 안쉬운듯

그니까 파라미터 변수만들 때 { student, age }라고 쓰면

파라미터로 들어오는 { student : 어쩌구 }는 student 라는 변수에 저장해주세요~

파라미터로 들어오는 { age : 어쩌구 }는 age 라는 변수에 저장해주세요~

라는 뜻입니다. (object 자료니까 변수 작명할 때 object 속성명으로 잘 작명해야함)

항상 같은 모습의 object, array 자료가 들어올 때 쓰는 문법이라고 보면 되겠습니다.

 

 

 

Q. 위의 함수 파라미터에 타입지정해보도록 합시다 어떻게 하게요

 

let person = { student : true, age : 20 }

function 함수({student, age} :{student : boolean, age : number}){
  console.log(student, age)
}
함수({ student : true, age : 20 })

object가 들어있으니까 object 처럼 타입지정을 했다고 합니다.

너무 길면 type 키워드 쓰는게 좋아보입니다.  

 

 

<출처 : 코딩애플 - 빠르게 마스터하는 타입스크립트>