javascript에서 object 요소를 가져올때 for in loop를 많이 사용하는데,
typescript에서는 해당 문법에서 eslint type 오류가 발생합니다.
key, value 타입 정의가 없어서 그런데요,
type을 [key:string]:unkown으로 설정하는 방법도 있겠지만,
그보다는, javascript Object 문법을 사용하면 type정의 필요없이 구현이 가능합니다.
Object.entries()
Object.entries() 메서드는 for...in와 같은 순서로 주어진 객체 자체의 enumerable 속성 [key, value] 쌍의 배열을 반환합니다.
Object.assign()
Object.assign() 메서드는 출처 객체들의 모든 열거 가능한 자체 속성을 복사해 대상 객체에 붙여넣습니다. 그 후 대상 객체를 반환합니다.
const obj = { name:'이름', title:'제목'} const newObj = {} /** for (const i in obj) { newObj[i] = obj[i]; } **/ for (const [key, value] of Object.entries(obj)) { Object.assign(newObj, { [key]: value }); } // output : newObj = { name:'이름', title:'제목'}
[Typescript] Generic을 통한 재사용 컴포넌트 구현 (0) | 2024.01.12 |
---|---|
React Typescript 함수 type 정의시 eslint 오류 해결 (0) | 2023.02.18 |
type vs interface (0) | 2023.01.26 |
댓글 영역