[TypeScript] Property 'name' does not exist on type 'EventTarget'.

2023. 2. 7. 19:10ใ†TypeScript

 

๐Ÿ‘€ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ + ๋ฆฌ์•กํŠธ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋˜ ๋„์ค‘ ๋งŒ๋‚œ ์—๋Ÿฌ

Property 'name' does not exist on type 'EventTarget'. 

''EventTarget' ํ˜•์‹์— name ์†์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.'

 

event ํƒ€์ž…์œผ๋กœ MouseEvent๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ

๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค MouseEvent๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†์„ฑ์ด ๋‹ฌ๋ผ์„œ TS์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ๋งŒ๋“ค์–ด๋†“๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— MouseEvent์˜ ๊ฒฝ์šฐ์—๋Š” ์†์„ฑ์„ ์ง€์ •ํ•˜๋ฉด ํƒ€์ž… ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

1. instanceof ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ event.target์ด ํƒœ๊ทธ(Element)์˜ ์ž์‹์ด๋ผ๊ณ  ๋ช…์‹œํ•ด์ฃผ๊ธฐ

if (event.target instanceof Element)
if (event.target instanceof HTMLDivElement)

๊ทธ๋Ÿฌ๋‚˜ ๋‚ด ์ฝ”๋“œ๋Š” ํ•ด๋‹น ๋ฐฉ์‹์—๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ

 

1. ํƒ€์ž… ๋‹จ์–ธ ์‚ฌ์šฉ as ~...

e.target as HTMLButtonElement

๋ณดํ†ต ํƒ€์ž… ๋‹จ์–ธ์„ ์ง€์–‘ํ•˜์ง€๋งŒ, target์ด ๋˜๋Š” DOM์ด ๋ฌธ์„œ์—์„œ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •ํ•ด์ ธ ์žˆ๋‹ค๋ฉด ์ด ๊ฒฝ์šฐ๋Š” ํƒ€์ž… ๋‹จ์–ธํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ํ•œ๋‹ค. ๋‚˜๋Š” ํ•ด๋‹น๋ฐฉ์‹์œผ๋กœ ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•จ!