Minwook’s portfolio

HTMLFormElement currentTarget 타입지정 본문

Today I Learned

HTMLFormElement currentTarget 타입지정

yiminwook 2023. 3. 18. 04:37

 

타입스크립트를 사용하여 form 태그의 childElement에서 value를 가져올때 타입이 any로 가져와지는 문제가 있었다.

 

코드 구조는 name이 image_searchform 태그,

 

안에는 name이 image_search__select select와 name이 image_search__inputinput이 있다.

 

event.currentTarget을 name 프로퍼티와 elemets로 접근할시  타입이 지정되지 않아 any로 추정되게 된다.

 

 

 

 

any로 타입을 지정해둔다면 타입스크립트를 사용하는 이점이 없어지기 때문에 form태그의 타입을 지정해주었다. 

 

form태그는 HTMLFormElement를 상속받고

 

elements 프로퍼티를 HTMLFormControlsCollection를 상속받아서 지정하였다.

 

 

 

위와 같이 form 태그의 타입을 지정해준후 Event의 제네릭으로 넘기면

 

새로 지정해준 elements 프로퍼티를 통해여 childElement의 value에 접근해도 오류가 나지 않게된다.

 

 

 

 


 

 

참고

 

TypeScript: Typing form events in React

Handling events in React is very close to how the events on DOM elements are handled. The biggest difference is, however, that React wraps the native DOM events into SyntheticEvent, making them behave slightly differently than the native events. Consequent

claritydev.net

 

Comments