인터페이스나 클래스를 사용해 관련된 정보를 묶어 새로운 타입으로 표시하는 것을 구조화라고 한다. 구조화된 데이터는 어떤 시점에서 데이터의 일부만 사용해야할 때가 있을때가 있는데 이를 분해하는 것을 비구조화라고 한다.
let name = jack.name, age = jack.age
비구조화 할당은 ESNext 자바스크립트의 구문으로 타입스크립트에서도 사용할 수 있다.
let {name, age} = jack
잔여 연산자
ESNext 자바스크립트와 타입스크립트는 점을 연이어 3개 사용하는 ... 연산자를 제공한다. 이 연산자는 사용되는 위치에 따라 잔여 연산자 혹은 전개 연산자라고 불리게 된다. 다음 예제는 address 라는 객체가 가지고 있는 속석 중 counrty 와 city를 제외한 나머지 속성을 별도로의 detail이라는 변수에 저장하는 코드이다.
let address: object = {
countryL 'korea',
city: 'Seoul',
address1: '1',
address2: '2'
}
const {country, city, ...detail} =address
console.log(detail) // {address: '1', address: '2'}
비구주화 할당으로써 ... 연산자를 쓰지 않을 때에는 전개 연산자라고 한다.
let coord = {...{x: 0}, ...{y: 0}}
console.log(coord) // {x: 0, y: 0}
의미 그대로 객체의 속성 모두 전개해 새로운 객체로 만드는 것이다.
let part1 = {name: 1}, part2 = {age: 2}, part3 = {etc: 3}
let total = {...part1, ...part2, ...part3} // {name: 1, age: 2, etc: 3}