λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Develop Study πŸ’»

[TypeScript] μœ λ‹ˆμ˜¨ νƒ€μž…, μΈν„°μ„Ήμ…˜ νƒ€μž… / | & / μœ λ‹ˆμ˜¨νƒ€μž…κ³Ό orμ—°μ‚° 차이/ | ||

728x90
λ°˜μ‘ν˜•

https://velog.io/@soulee__/TypeScript-Union-Type

 

[TypeScript] μœ λ‹ˆμ˜¨ νƒ€μž…κ³Ό μΈν„°μ„Ήμ…˜ νƒ€μž… (Union Type & Intersection Type) #4

λ³Έ ν¬μŠ€νŒ…μ€, 'μΊ‘ν‹΄νŒκ΅'λ‹˜μ΄ μž‘μ„±ν•˜μ‹  'νƒ€μž…μŠ€ν¬λ¦½νŠΈ ν•Έλ“œλΆ'을 보고 슀슀둜 μ •λ¦¬ν•˜κΈ° μœ„ν•΄ μž‘μ„±ν•˜λŠ” ν¬μŠ€νŒ…μž…λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ https://joshua1988.github.io/λ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”!

velog.io

 

μ‚¬μš© λͺ©μ μ΄ μ „ν˜€ λ‹€λ₯΄μ§€λ§Œ μ™œμΈμ§€ λͺ¨λ₯΄κ²Œ λ³Ό λ•Œ λ§ˆλ‹€ ν—·κ°ˆλ¦¬λŠ” νƒ€μž…μ΄λ‹€ 

| : μœ λ‹ˆμ˜¨νƒ€μž… (νƒ€μž…μ§€μ •μ‹œ μ‚¬μš©λ¨, 컴파일 ν•˜λ©΄ 마찬자기둜 사라짐)

& : μΈν„°μ„Όμ…˜ νƒ€μž… (νƒ€μž…μ§€μ •μ‹œ μ‚¬μš©λ¨, μ—¬λŸ¬ νƒ€μž…μ„ λͺ¨λ‘ λ§Œμ‘±ν•˜λŠ” ν•˜λ‚˜μ˜ νƒ€μž…)

|| : λ…Όλ¦¬μ—°μ‚°μž  (μ‹€μ œ 데이터λ₯Ό μ—°μ‚°ν•˜λŠ”λ° μ‚¬μš©

 

 

| μœ λ‹ˆμ˜¨ νƒ€μž… 

| μ—°μ‚°μžλ₯Ό μ΄μš©ν•˜μ—¬ νƒ€μž…μ„ μ—¬λŸ¬ 개 μ—°κ²°ν•˜λŠ” 방식
νƒ€μž…μ„ μ—¬λŸ¬κ°œ μ—°κ²°, λ³€μˆ˜μ˜ μžκ²©μ„ μ •μ˜ν•¨ 
데이터 νƒ€μž…μ΄ λ“€μ–΄κ°ˆ μˆ˜λ„, μΈν„°νŽ˜μ΄μŠ€κ°€ λ“€μ–΄κ°ˆ μˆ˜λ„ 있음 

// scoreλŠ” 숫자(number)λ‚˜ λ¬Έμžμ—΄(string)만 ν—ˆμš©ν•˜κ² λ‹€!
let score: number | string; 

score = 100;    // OK
score = "A+";   // OK
score = true;   // 🚨 μ—λŸ¬! (boolean은 ν—ˆμš© μ•ˆ 함)

 

값을 μ—°μ‚°ν•  λ•Œ | λ₯Ό μ‚¬μš©ν•˜λ©΄ λΉ„νŠΈμ—°μ‚°μžλ‘œ μž‘λ™ν•¨. 

 

 

 

& μΈν„°μ„Ήμ…˜νƒ€μž… 

μ—¬λŸ¬ 개의 νƒ€μž… μ •μ˜λ₯Ό ν•˜λ‚˜λ‘œ ν•©μΉ˜λŠ” 방식을 μΈν„°μ„Ήμ…˜ νƒ€μž… μ •μ˜ 방식

 

 

 

|| 논리 μ—°μ‚°, ORμ—°μ‚°κ³Ό λΉ„μŠ· 

λ³€μˆ˜ 값이 null, 0, "", undefined인 경우 였λ₯Έμͺ½ 값을 λ¦¬ν„΄ν•˜λŠ” μ—°μ‚°

let inputScore = 0;

// inputScoreκ°€ 0(False)μ΄λ‹ˆκΉŒ 였λ₯Έμͺ½ κ°’ 10을 μ„ νƒν•΄μ„œ finalScore에 λ„£μŒ
let finalScore = inputScore || 10; 

console.log(finalScore); // κ²°κ³Ό: 10

nullκ³Ό undefined만 κ±ΈλŸ¬λ‚΄κ³  싢은 경우 병합 μ—°μ‚°μž (??)μ‚¬μš©!!

[TypeScript, Python] null, undefined, None , ? / ?? μ‚¬μš©λ²• 의미 , λ³‘ν•©μ—°μ‚°μž, μ˜΅μ…”λ„ 체이닝

 

 

 

728x90
λ°˜μ‘ν˜•