πŸͺ„ λŸ¬λ‹ νƒ€μž…μŠ€ν¬λ¦½νŠΈ CH2 - νƒ€μž… μ‹œμŠ€ν…œ

λ°•λ―Όμš°Β·2023λ…„ 10μ›” 23일
0

πŸͺ„ TypeScript

λͺ©λ‘ 보기
1/4
post-thumbnail

νƒ€μž… 였λ₯˜ vs ꡬ문 였λ₯˜

  • ꡬ문 였λ₯˜ : js둜 λ³€ν™˜μ΄ μ•ˆλ˜λŠ” 문법적 였λ₯˜
  • νƒ€μž… 였λ₯˜ : νƒ€μž… 검사기가 κ°μ§€ν•œ νƒ€μž… 였λ₯˜

ν• λ‹Ή κ°€λŠ₯μ„±

ν•΄λ‹Ή λ³€μˆ˜μ— μƒˆλ‘œμš΄ 값이 ν• λ‹Ήλ˜λ©΄, μƒˆλ‘­κ²Œ ν• λ‹Ήλœ κ°’μ˜ νƒ€μž…μ΄ λ³€μˆ˜μ˜ νƒ€μž…κ³Ό λ™μΌν•œμ§€, 즉 μƒˆλ‘œμš΄ 값이 κΈ°μ‘΄ λ³€μˆ˜μ— 할당될 수 μžˆλŠ”μ§€


ν• λ‹Ή κ°€λŠ₯μ„± 였λ₯˜

Type... is not assignable to type...

νŠΉμ • λ³€μˆ˜μ— νŠΉμ • 값을 ν• λ‹Ήν•˜λ €κ³  ν•  λ•Œ, 각 νƒ€μž…μ΄ μ„œλ‘œ μΌμΉ˜ν•˜μ§€ μ•Šμ„ λ•Œ λ°œμƒ


μ§„ν™”ν•˜λŠ” any

μ΄ˆκΈ°κ°’μ΄ ν• λ‹Ήλ˜μ§€ μ•Šμ•„ 초기 νƒ€μž…μ„ μœ μΆ”ν•  수 μ—†λŠ” λ³€μˆ˜λŠ” μ§„ν™”ν•˜λŠ” any라고 λΆ€λ₯Έλ‹€.

νŠΉμ • νƒ€μž…μ„ κ°•μ œν•˜λŠ” λŒ€μ‹  μƒˆλ‘œμš΄ 값이 할당될 λ•Œλ§ˆλ‹€ λ³€μˆ˜ νƒ€μž…μ— λŒ€ν•œ 이해λ₯Ό λ°œμ „μ‹œν‚¨λ‹€.

let rocker; // μ§„ν™”ν•˜λŠ” any

rocker = "MinwooP";
rocker.toUpperCase();

rocker = 20;
rocker.toPrecision(1);

rocker.toUpperCase(); // error !

ν•˜μ§€λ§Œ μ΄λ ‡κ²Œ any νƒ€μž…μœΌλ‘œ μ§„ν™”ν•˜λŠ” 것을 ν—ˆμš©ν•˜λ©΄ ts의 νƒ€μž… 검사 λͺ©μ μ„ μ“Έλͺ¨μ—†κ²Œ λ§Œλ“ λ‹€.


νƒ€μž… μ• λ„ˆν…Œμ΄μ…˜

=> μ΄ˆκΈ°κ°’μ„ ν• λ‹Ήν•˜μ§€ μ•Šκ³ λ„ λ³€μˆ˜μ˜ νƒ€μž…μ„ μ„ μ–Έν•  수 있음

let rocker: string; // νƒ€μž… μ• λ„ˆν…Œμ΄μ…˜ 
rocker = "MinwooP"

=> μ΄λŸ¬ν•œ νƒ€μž… μ• λ„ˆν…Œμ΄μ…˜μ€ tsμ—λ§Œ μ‘΄μž¬ν•˜λ©° λŸ°νƒ€μž„ μ½”λ“œμ— 영ν–₯을 주지 μ•Šκ³  μœ νš¨ν•œ js ꡬ문도 μ•„λ‹ˆλ‹€.

tsc λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•΄ ts => js둜 μ»΄νŒŒμΌν•˜λ©΄ ν•΄λ‹Ή μ½”λ“œκ°€ μ‚­μ œλœλ‹€.


πŸ“Œ μΆ”κ°€ λ‚΄μš©

String 래퍼 객체

String κ°μ²΄λŠ” μ›μ‹œ νƒ€μž…μΈ λ¬Έμžμ—΄μ„ λ‹€λ£° λ•Œ μœ μš©ν•œ ν”„λ‘œνΌν‹°μ™€ λ©”μ†Œλ“œλ₯Ό μ œκ³΅ν•˜λŠ” 레퍼(wrapper) 객체이닀. λ³€μˆ˜ λ˜λŠ” 객체 ν”„λ‘œνΌν‹°κ°€ λ¬Έμžμ—΄μ„ κ°’μœΌλ‘œ 가지고 μžˆλ‹€λ©΄ String 객체의 별도 생성없이 String 객체의 ν”„λ‘œνΌν‹°μ™€ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

μ›μ‹œ νƒ€μž…μ΄ wrapper 객체의 λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” μ΄μœ λŠ” μ›μ‹œ νƒ€μž…μœΌλ‘œ ν”„λ‘œνΌν‹°λ‚˜ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•  λ•Œ μ›μ‹œ νƒ€μž…κ³Ό μ—°κ΄€λœ wrapper 객체둜 μΌμ‹œμ μœΌλ‘œ λ³€ν™˜λ˜μ–΄ ν”„λ‘œν† νƒ€μž… 객체λ₯Ό κ³΅μœ ν•˜κ²Œ 되기 λ•Œλ¬Έμ΄λ‹€.


const str = 'Hello world!';
console.log(str.toUpperCase()); // 'HELLO WORLD!'

μœ„μ—μ„œ μ›μ‹œ νƒ€μž… λ¬Έμžμ—΄μ„ λ‹΄κ³  μžˆλŠ” λ³€μˆ˜ str이 String.prototype.toUpperCase() λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•  수 μžˆλŠ” 것은 λ³€μˆ˜ str의 값이 μΌμ‹œμ μœΌλ‘œ wrapper객체둜 λ³€ν™˜λ˜μ—ˆκΈ° λ•Œλ¬Έμ΄λ‹€.

profile
κΎΈμ€€νžˆ, 깊게

0개의 λŒ“κΈ€