Zoeeey
Stack flows in you
Zoeeey
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (155)
    • ๐Ÿ’ก UXUI (4)
      • UXUI (2)
      • UI (2)
      • UX (0)
    • ๐ŸŸจ JavaScript (66)
      • ๊ฐœ๋… (42)
      • ์ •๋ฆฌ (2)
      • ๋ฌธ์ œํ’€๊ธฐ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, ์ฝ”๋”ฉ์• ํ”Œ) (15)
      • ์‘์šฉํ•˜์—ฌ ์ž๋™ํ™”or๋ฌธ์ œํ•ด๊ฒฐํ•˜๊ธฐ (2)
      • ๊ธฐํƒ€ (5)
    • โš›๏ธ React (49)
      • ๊ฐœ๋… (27)
      • ๊ฐœ๋…(Redux) (3)
      • ์ •๋ฆฌ (4)
      • ๋ฌธ์ œํ’€๊ธฐ (์ฝ”๋”ฉ์• ํ”Œ: React) (15)
    • ๐Ÿ“˜ TypeScript (10)
      • ๊ฐœ๋… (8)
      • ๋ฌธ์ œํ’€๊ธฐ (์ฝ”๋”ฉ์• ํ”Œ) (2)
    • ๐ŸŒ HTML,CSS (18)
      • ์‹ค๋ฌด์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋“ค (10)
      • ๋’ค๋Šฆ๊ฒŒ ์•Œ์•„์„œ ๋ผˆ์•„ํ”ˆ ์œ ์šฉํ•œ CSS (6)
      • ๊ธฐํƒ€ ์ž์ฃผ ์“ฐ๋Š” CSS (2)
    • ๐Ÿ’ป CS (8)
      • CS (5)
      • ์ •๊ทœํ‘œํ˜„์‹ (2)
      • Git,Github (1)

ํƒœ๊ทธ

  • Ajax
  • object
  • class
  • ์˜ค๋ฅ˜
  • useEffect
  • CS
  • TypeScript
  • json
  • ์‚ผํ•ญ์—ฐ์‚ฐ์ž
  • UXUI
  • CSS
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • Props
  • JavaScript
  • react
  • state
  • redux
  • ์ฝ”๋”ฉ์• ํ”Œ
  • axios
  • array
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
hELLO ยท Designed By ์ •์ƒ์šฐ.
Zoeeey

Stack flows in you

๐Ÿ“˜ TypeScript/๊ฐœ๋…

[์ฝ”๋”ฉ์• ํ”Œ] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ HTML ์กฐ์ž‘์‹œ ์ฃผ์˜์  (2) : ๋” narrowingํ•˜๊ธฐ

2023. 12. 17. 13:30

์šฐ์„ ..

{
  "compilerOptions": {
    ...
    "strictNullChecks": true,
    ...
  },
}

tsconfig.json ํŒŒ์ผ์—์„œ strictNullCheck ์˜ต์…˜์„ true๋กœ ๋ฐ”๊พผ๋‹ค. (ํ˜น์€ "strict" : true๋กœ ์จ๋‘ฌ๋„ ๋œ๋‹ค) ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๋ฉด TypeScript ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋” ์—„๊ฒฉํ•œ ๊ทœ์น™์„ ์ ์šฉํ•˜๋ฉฐ, ๋ณ€์ˆ˜์— ๋Œ€ํ•œ null ์ฒดํฌ๊ฐ€ ๊ฐ•์ œ๋œ๋‹ค.


href ์กฐ์ž‘์‹œ ์˜ค๋ฅ˜

let link = document.querySelector('#link');
if(link instanceof HTMLElement){
  link.href = 'https://kakao.com';
}

HTMLElement ํƒ€์ž…์€ href ์†์„ฑ์ด ์—†๋‹ค๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค. ๋งํฌํƒœ๊ทธ์˜ ๊ฒฝ์šฐ์—๋Š” ์ข€๋” ์ข๊ฒŒ narrowingํ•ด์ค˜์•ผ ํ•œ๋‹ค. 


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

let link = document.querySelector('#link');
if(link instanceof HTMLAnchorElement){
  link.href = 'https://kakao.com';
}

๋งํฌํƒœ๊ทธ์˜ ๊ฒฝ์šฐ์—๋Š” ์ข€๋” ์ข๊ฒŒ narrowingํ•ด์ค˜์•ผ ํ•œ๋‹ค.

html ํƒœ๊ทธ ์ข…๋ฅ˜๋ณ„๋กœ ์ •ํ™•ํ•œ ํƒ€์ž…๋ช…์นญ์ด ์žˆ๋‹ค.

  • a ํƒœ๊ทธ๋Š” HTMLAnchorElement
  • img ํƒœ๊ทธ๋Š” HTMLImageElement
  • h4 ํƒœ๊ทธ๋Š” HTMLHeadingElement
  • ...

์—„์ฒญ ๋งŽ์œผ๋‹ˆ ์ž๋™์™„์„ฑ์„ ์“ฐ์ž.


์ถœ์ฒ˜ : ์ฝ”๋”ฉ์• ํ”Œ https://codingapple.com/ / TypeScript Documentation https://www.typescriptlang.org/docs/handbook/2/objects.html

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋™์ผ์กฐ๊ฑด

'๐Ÿ“˜ TypeScript > ๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ฝ”๋”ฉ์• ํ”Œ] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ class : constructor, prototype ํƒ€์ž…์ง€์ •  (0) 2023.12.20
[์ฝ”๋”ฉ์• ํ”Œ] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ HTML ์กฐ์ž‘์‹œ ์ฃผ์˜์  (1)  (0) 2023.12.17
[์ฝ”๋”ฉ์• ํ”Œ] ํ•จ์ˆ˜์™€ object ๋ฉ”์„œ๋“œ์— type alias ์ง€์ •ํ•˜๊ธฐ  (0) 2023.12.13
[์ฝ”๋”ฉ์• ํ”Œ] ํƒ€์ž…์„ ํŠน์ • ๊ฐ’์œผ๋กœ ์ง€์ •ํ•˜์ž : Literal Types (+ as const)  (0) 2023.12.13
[์ฝ”๋”ฉ์• ํ”Œ] ํƒ€์ž…์„ ๋ณ€์ˆ˜์— ๋‹ด์ž : type alias  (0) 2023.12.11
    '๐Ÿ“˜ TypeScript/๊ฐœ๋…' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [์ฝ”๋”ฉ์• ํ”Œ] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ class : constructor, prototype ํƒ€์ž…์ง€์ •
    • [์ฝ”๋”ฉ์• ํ”Œ] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ HTML ์กฐ์ž‘์‹œ ์ฃผ์˜์  (1)
    • [์ฝ”๋”ฉ์• ํ”Œ] ํ•จ์ˆ˜์™€ object ๋ฉ”์„œ๋“œ์— type alias ์ง€์ •ํ•˜๊ธฐ
    • [์ฝ”๋”ฉ์• ํ”Œ] ํƒ€์ž…์„ ํŠน์ • ๊ฐ’์œผ๋กœ ์ง€์ •ํ•˜์ž : Literal Types (+ as const)
    Zoeeey
    Zoeeey
    ๊ธธ๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ์งง๊ฒŒ ๊ทธ๋ฆฌ๊ธฐ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”