2020. 2. 5. 21:59ㆍTIL
어제 제출한 과제를 다시 한번 보았다. 타입 스크립트 공부도 할 겸 제대로 체크 하지 못한 타입들을 전부 새로 걸어 주었다.
local storage 에서 받아오는 값에서 아직 값이 저장되기 전에는 null 값이기 때문에 string | null 지정을 해주어야 했다.
해당 값을 parse 하는 부분에도 JSON.parse(oldItemStorage || "{}") null 일경우 "{}" 빈 스트링 값이 들어가도록 만들어 주어야 했다.
let oldItemStorage:string|null = localStorage.getItem('items')
let newItemsSrotage = []
newItemsSrotage = JSON.parse(oldItemStorage || "{}")
아래 (val:{[index:string]:any} 부분에서 any에 어떤값을 넣어 줘야하는지 잘 모르겠다.
<(val:{[index:string]:string}> 이런 식으로 사용해줘라는 글도 보았는데 여전히 에러가 나타났다.
type을 사용하여 미리 지정을 해둔 뒤( ex) type Item = {....} ) (val:{[index:string]:Item} 이런 식으로 적용을 해주는 방법도 있었는데 잘 되지 않았다. 좀 더 공부를해 보아야 할 것 같다.
newSrotage = newSrotage.filter((val:{[index:string]:any})=> val["name"] !== discountName )
onclick 시 e 부분에 tpye은 onclick에 커서를 가져 갔을 때 나오는 타입을 지정해주면 된다고 하여 지정을 해주었지만 찾을 수 없는 타입이라는 에러가 나타 났다. 기존에 React.MouseEvent<HTMLDivElement, MouseEvent> 어쩌고 하는 event 타입을 걸어 주면 antd 디자인에서는 e.key로 값을 받는데 React.MouseEvent<HTMLDivElement, MouseEvent> 에는 key 프로퍼티는 존재하지 않는다는 에러가 뜬다.
const handleClick = ( e: any ) => {...}
과제를 통해서 타입스크립트에 대해서 좀 더 이해 할 수 있었지만 아직 내가 아는 부분은 너무나도 적은거 같다.
'TIL' 카테고리의 다른 글
[TIL] 02.08 (0) | 2020.02.09 |
---|---|
[TIL] 02.07 파이어베이스 (0) | 2020.02.08 |
[TIL] 02.04 과제 제출!! (0) | 2020.02.04 |
[TIL] 02.03 (0) | 2020.02.04 |
[TIL] 02.02 (0) | 2020.02.02 |