[TIL] 02.05 typescript 수정

2020. 2. 5. 21:59TIL

어제 제출한 과제를 다시 한번 보았다. 타입 스크립트 공부도 할 겸 제대로 체크 하지 못한 타입들을 전부 새로 걸어 주었다. 

 

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