자바스크립트에서는 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을 문자열로 형변환을 해주기 때문에 문제가 발생하지 않는다.
반응형
'Coding > JavaScript' 카테고리의 다른 글
JavaScript에서 Map ( 자료구조, Not 고차함수)을 파헤쳐보자 - 작성중 (0) | 2020.12.04 |
---|---|
JavaScript Method Chaining , Function Chaining, 체이닝 패턴 (0) | 2020.06.14 |
JavaScript 화살표 함수와 일반 함수의 차이 (0) | 2020.06.09 |
JavaScript 구조 분해 ( Destructuring ) (0) | 2020.05.17 |
코딩테스트 준비를 위한 JS 함수 정리(계속 추가) (0) | 2020.04.30 |