🎈 μœ λ‹ˆμ˜¨ νƒ€μž… :  var seho : string | number | boolean; 

var seho : string | number | boolean; 

μ—¬κΈ°μ„œ | λŠ” OR을 λœ»ν•œλ‹€.

interface Developer {
  name: string;
  skill: string;
}

interface Person {
  name: string;
  age: number;
}

function askSomeone(someone: Developer | Person ) {
  someone.name;
}
askSomeone({ name: 'λ””λ²¨λ‘œνΌ', skill: 'μ›Ή 개발'});
askSomeone({ name: 'μΊ‘ν‹΄', age: 100});

ν•œ κ°€μ§€ μ΄μƒμ˜ νƒ€μž…μ„ μ‚¬μš©ν•˜κ³  싢을 λ•Œ | (νŒŒμ΄ν”„)λ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€. μœ λ‹ˆμ˜¨ νƒ€μž…μ€ Developer와 Person의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ„±ν–ˆμ„ λ•Œ λ‘˜ λ‹€ κ³΅ν†΅μœΌλ‘œ λ“€μ–΄κ°„ nameκ°’λ§Œ 뽑아내쀀닀. κ·Έ μ΄μœ λŠ”  someone에 ageλ‚˜ skill이 νƒ€μž… 검증도 없이 λ°”λ‘œ μ¨λ²„λ¦¬κ²Œ 되면 μ•ˆμ „ν•˜μ§€ μ•Šμ•„ 이 μ½”λ“œμƒ μ—λŸ¬κ°€ λ‚  수 μžˆλ‹€κ³  ν•œλ‹€. μ‰½κ²Œ 말해 μΈν„°νŽ˜μ΄μŠ€ ꡬ쑰체에 κ³΅ν†΅λœ μ†μ„±λ§Œ μ œκ³΅ν•œλ‹€κ³  λ³΄λ©΄λœλ‹€.

function askSomeone(someone: Developer | Person ) {
  // someone.name;
  // someone.skill;
  // someone.age;
}
askSomeone({ name: 'λ””λ²¨λ‘œνΌ', skill: 'μ›Ή 개발'});
askSomeone({ name: 'μΊ‘ν‹΄', age: 100});

λ‹€λ₯Έ νƒ€μž…λ“€μ˜ 속성을 뢈러였고 μ‹Άλ‹€λ©΄ μ΄λ ‡κ²Œ askSomeone을 두 번 ν˜ΈμΆœν•΄μ„œ 각각 μ§€μ •ν•΄μ£ΌλŠ” νƒ€μž…μ˜ μ†μ„±λ“€λ§Œ 골라 ν˜ΈμΆœν•΄μ€„ 수 μžˆλ‹€. (skill, age) 

 

🎈 μΈν„°μ„Ήμ…˜ νƒ€μž… : var capt : string & number & boolean;

var capt : string & number & boolean; 

&λŠ” ANDλ₯Ό λœ»ν•œλ‹€.

interface Developer {
  name: string;
  skill: string;
}

interface Person {
  name: string;
  age: number;
}

function askSomeone1(someone: Developer & Person ) {
  // μΈν„°μ„Ήμ…˜ : Developer κ³Ό Person이 ν•©μΉœ ν•˜λ‚˜μ˜ νƒ€μž…
  someone.name;
  someone.skill;
  someone.age;
}
askSomeone1({ name: 'λ””λ²¨λ‘œνΌ', skill: 'μ›Ή 개발', age: 34});

μΈν„°μ„Ήμ…˜μ€  Developer κ³Ό Person이 ν•©μΉœ ν•˜λ‚˜μ˜ νƒ€μž…μœΌλ‘œ ! 곡톡인 name 뿐만 μ•„λ‹ˆλΌ skillκ³Ό age 속성도 같이 μ œκ³΅ν•΄μ€€λ‹€. κ·Έλž˜μ„œ ν˜ΈμΆœν•  땐 λ°˜λ“œμ‹œ name, skill, ageλΌλŠ” 속성 값듀을 ν•œ λ²ˆμ— ν•œ μ€„λ‘œ 좜λ ₯ν•΄μ£Όμ–΄μ•Ό λΉ¨κ°„ μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€.

 

μœ λ‹ˆμ˜¨ νƒ€μž…μ²˜λŸΌ

askSomeone1({ name: 'λ””λ²¨λ‘œνΌ', skill: 'μ›Ή 개발'});
askSomeone1({ name: 'μΊ‘ν‹΄', age: 100});

μ΄λŸ°μ‹μœΌλ‘œ ν˜ΈμΆœν•΄μ£Όλ©΄ 빨간쀄 μ—λŸ¬κ°€ 생긴닀. 

 


 

🎈 정리

μœ λ‹ˆμ˜¨νƒ€μž…κ°™μ€ κ²½μš°μ—λŠ” κ³΅ν†΅λœ νƒ€μž…λ§Œ 제곡이 κ°€λŠ₯ν–ˆλ˜ λ°˜λ©΄μ— μΈν„°μ„Ήμ…˜ μ½”λ“œ 같은 κ²½μš°μ—λŠ” Developer와 Person이 κ°€μ§€κ³  μžˆλŠ” λͺ¨λ“  속성과 νƒ€μž…μ„ λ‹€ ν¬ν•¨ν•œ ν•˜λ‚˜μ˜ νƒ€μž…μ΄λΌκ³  μ •μ˜ν–ˆκΈ° λ•Œλ¬Έμ— μ—λŸ¬κ°€ μ•ˆλ‚˜κ³  μ „λΆ€ μ œκ³΅ν•΄μ€€λ‹€. ν•˜μ§€λ§Œ 두 κ°€μ§€ μ€‘μ—μ„œ μœ λ‹ˆμ˜¨ νƒ€μž…μ΄ 훨씬 더 자주 μ“°μΈλ‹€λŠ” 점을 μœ μ˜ν•˜μž.

+ Recent posts