자바스크립트에서는 set을 구조분해할당으로 배열로 바꿀 수 있다.

 

set을 배열로 바꿈으로 쉽게 중복을 제거할 수 있는데,

 

예를 들면

 

let a = new Set([1,2,3,1])

let b = [...a]

 

이렇게 하면, 쉽게 중복(예제에서는 1)이 제거된 배열을 구할 수 있다.

 

하지만 타입스크립트에서는 

 

'Set<any>' 형식이 배열 형식 또는 문자열 형식이 아닙니다.

 

라는 오류가 발생한다.

 

구조분해할당은 원래 배열이나 객체, 문자열을 해체하는 것이기 때문에, set은 해당이 안되는 것 같다.

javascript는 유연하여 set도 구조분해할당해주지만, 엄밀하게 타입을 정하는 typescript에서는 오류를 띄운다.

 

따라서 이 문제를 해결하기 위해서는 

 

Array.from(집합) 을 사용해주면 된다.

위의 예제를 예를 들면

 

let a = new Set([1,2,3,1])

let b = [Array.from(a)]

 

이렇게 해결해주면 된다.

set을 문자열로 형변환을 해주기 때문에 문제가 발생하지 않는다.

 

 

반응형

+ Recent posts