typescriptinterface Data { report: { id: string; source: string; amount: number
Spread 연산자와 Pick, Partial 유틸리티 타입을 조합해 불변성을 지키며 객체를 안전하게 업데이트하는 방법을 정리합니다.
2022. 5. 20.Frontend타입스크립트에서 유니온 타입을 안전하게 좁히는 타입 가드 함수를 작성하는 방법을 알아봅니다.
2022. 5. 20.Frontend단계 쪼개기와 다형성으로 조건문을 대체해 계산 로직과 출력 로직을 분리하는 리팩터링을 다룹니다.
2022. 5. 7.위와 같은 Data라는 Interface가 있다고 가정해볼때, report의 객체 배열이 아닌 객체에 대한 타입을 Interface를 사용하여 어떻게 타입을 추출할 수 있을까 고민을 해봤다.
typescriptconst newReport: Data['report'][number] = { id: uuid(), created_at: new Date(), updated_at: new Date(), type: 'income', amount: 400, source: 'HooneyLog', };
몇가지의 시도를 해보다가 Data['report'][number] 와 같은 형태로 타입을 만들어보니까 잘 작동한다는것을 확인 할 수 있었다.
여기서 [number]를 넣은 이유는 위 Data라는 interface에서 report의 타입이 배열 형태이기 때문에 배열 형태에서 해제를 시키기 위해 사용한것이다.
흔히 배열에서 어떠한 값을 슬라이싱을 할때 array[0] 와 같은 방식으로 사용한 개념이라고 보면 된다.