230531_TIL(TypeScript 기초 (2))

PYMΒ·2023λ…„ 5μ›” 31일
0

Today I Learned

λͺ©λ‘ 보기
19/20
post-thumbnail

🌱였늘 ν•œ 것

  • νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ μ—΄κ±°ν˜•(Enum), μΈν„°νŽ˜μ΄μŠ€, νƒ€μž… 별칭, νƒ€μž… μΆ”λ‘ , ν΄λž˜μŠ€μ— λŒ€ν•΄ ν•™μŠ΅ 및 간단 μ‹€μŠ΅μ„ μ§„ν–‰ν–ˆλ‹€.

πŸŒ±κΈ°μ–΅ν•΄μ•Όν•  것

  • HTTP Method듀은 API 톡신 μ‹œ 자주 μ‚¬μš©ν•˜κΈ° λ•Œλ¬Έμ— μ•„λž˜μ™€ 같이 Enum으둜 μ •μ˜ν•  수 μžˆλ‹€. μ˜€νƒ€λ₯Ό λ°©μ§€ν•˜κ³  μ½”λ“œμ˜ 가독성과 μ•ˆμ •μ„±μ„ 높일 수 μžˆλ‹€.
enum HttpMethod {
  Get = "GET",
  Post = "POST",
  Put = "PUT",
  Delete = "DELETE",
}
  • μˆ«μžν˜• Enumμ—μ„œλŠ” 역맀핑을 μ‚¬μš©ν•  수 μžˆλ‹€. key둜 valueλ₯Ό 얻을 수 있고, valueλ‘œλ„ keyλ₯Ό 얻을 수 μžˆλ‹€.

  • μΈν„°νŽ˜μ΄μŠ€μ™€ νƒ€μž…μ˜ 차이점

    • μΈν„°νŽ˜μ΄μŠ€μ˜ μ‚¬μš©λͺ©μ μ€ 객체의 ꡬ쑰λ₯Ό μ •μ˜ν•˜κΈ° μœ„ν•΄μ„œμ΄κ³  νƒ€μž… 별칭은 λ‹€μ–‘ν•œ νƒ€μž… 이름(λ‹‰λ„€μž„)을 μ°Έμ‘°ν•˜κΈ° μœ„ν•΄μ„œμ΄λ‹€.

    • μΈν„°νŽ˜μ΄μŠ€λŠ” 객체λ₯Ό κ΅¬μ„±ν•˜λŠ” ν”„λ‘œνΌν‹°λ‚˜ λ©”μ„œλ“œλ₯Ό λͺ…μ‹œν•˜κ³  μœ μ§€ν•˜λŠ”κ²Œ μœ μš©ν•˜κ³  νƒ€μž… 별칭은 λ³΅μž‘ν•œ νƒ€μž…μ„ λ‹¨μˆœν™”ν•˜κ³  κ³΅ν†΅μ μœΌλ‘œ μ‚¬μš©λ˜λŠ” νƒ€μž…μ˜ μ€‘λ³΅μ •μ˜λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ ν™œμš©λœλ‹€.

    • νƒ€μž…λ³„μΉ­μœΌλ‘œ μ •μ˜ν•œ νƒ€μž…μ€ 마우슀λ₯Ό μœ„μ— κ°€μ Έλ‹€ λŒ€λ©΄ λ‚΄λΆ€ ν”„λ‘œνΌν‹°λ₯Ό μ•Œ 수 μžˆλ‹€.

    • κ°€μž₯ μ€‘μš”ν•œ 차이점은 μΈν„°νŽ˜μ΄μŠ€λŠ” μƒμ†λ°›μ•„μ„œ ν™•μž₯이 κ°€λŠ₯ν•œλ° λΉ„ν•΄, νƒ€μž… 별칭은 말 κ·ΈλŒ€λ‘œ νƒ€μž…μ— μƒˆλ‘œμš΄ 이름을 λΆ€μ—¬ν•˜λŠ” 것 뿐이라 ν™•μž₯이 λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 점이닀.

  • TypeScriptμ—μ„œ 클래슀λ₯Ό μ •μ˜ν•  λ•Œ, constructorλ₯Ό μ΄μš©ν•˜μ—¬ μ΄ˆκΈ°ν™”ν•˜λŠ” 멀버듀은 μ „λΆ€ μƒλ‹¨μ—μ„œ μ •μ˜ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.

  • νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ 클래슀 μ—­μ‹œ extends ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ μƒμ†ν•΄μ„œ ν™•μž₯ν•  수 μžˆλ‹€.

  • 외뢀에 λ“œλŸ¬λ‚΄μ§€ μ•Šμ„ 멀버가 μžˆλ‹€λ©΄ μ•„λž˜ μ½”λ“œμ²˜λŸΌ privateλ₯Ό λͺ…μ‹œν•΄ 주자.

    class Person {
     public name: string;
     private age: number;
     ...
  • readonly ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œνΌν‹°λ₯Ό 읽기 μ „μš©μœΌλ‘œ λ§Œλ“€ 수 μžˆλ‹€. 읽기 μ „μš© ν”„λ‘œνΌν‹°λ“€μ€ μ„ μ–Έ λ˜λŠ” μƒμ„±μžμ—μ„œ μ΄ˆκΈ°ν™”ν•΄μ•Ό ν•œλ‹€.

    • ν”„λ‘œνΌν‹°λ₯Ό μ΄ˆκΈ°ν™” ν•  λ•Œ readonly name: string; μ΄λ ‡κ²Œ 읽기 μ „μš©μœΌλ‘œ μ„€μ •ν–ˆλŠ”λ°, 이후에 spooky.name = "멋진 μŠ€ν‘Έν‚€"; 와 같이 값을 λ³€κ²½ν•˜λ €κ³  ν•˜λ©΄ μ—λŸ¬κ°€ λ°œμƒν•œλ‹€. (당연함. μ½κΈ°μ „μš©μž„)
  • TS와 클래슀 간단 μ‹€μŠ΅


class Animal {
  name: string;
  sound: string;

  constructor(name: string) {
    this.name = name;
  }

  speak(sound: string): void {
    console.log(`${this.name}(은/λŠ”) ${sound}ν•˜κ³  μ›λ‹ˆλ‹€.`);
  }
}

class Mouse extends Animal {
  name: string;

  constructor(name: string) {
    super(name);
  }

  speak(sound = '찍찍') {
    super.speak(sound);
  }
}

class Cat extends Animal {
  name: string;
  constructor(name: string) {
    super(name);
  }

  speak(sound = 'μ•Όμ˜Ή') {
    super.speak(sound);
  }
}

let jerry = new Mouse('제리');
let tom = new Cat('ν†°');

jerry.speak();
tom.speak('λƒ₯λƒ₯');

πŸŒ±λ” μ•Œμ•„λ³Ό 것

  • νƒ€μž… 단언
  • React에 TypeScriptλ₯Ό μ‚¬μš©ν•˜λŠ” μ˜ˆμ‹œ (Function μ»΄ν¬λ„ŒνŠΈμ— propsλ₯Ό μΈν„°νŽ˜μ΄μŠ€λ‘œ μ •μ˜ν•˜λŠ” 방법 λ“±)

πŸŒ±ν•œ 쀄 감상

νƒ€μž…μŠ€ν¬λ¦½νŠΈ... μ–΄λ ΅λ‹€...! 그치만 아직 μ•ˆ μ΅μˆ™ν•΄μ„œ 그런걸거라고 ... μžμ‹ μ„ 닀독여 λ³Έλ‹€ ^^ κ·Έλž˜λ„ 이둠이 잘 μ •λ¦¬λ˜μ–΄ μžˆμ–΄μ„œ κ³΅λΆ€ν•˜λŠ”λ° μ—„μ²­ λ§‰νžˆμ§„ μ•Šμ•˜λ‹€. JS 지식이 μžˆμœΌλ‹ˆ 살짝 살짝 λ‹€λ₯Έ 문법을 μ μš©μ‹œν‚€λŠ” 게 은근 ν₯미둭기도 ν–ˆλ‹€. 근데 μ•„μ§κΉŒμ§€λŠ” μ‹€λ¬΄μ—μ„œ νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ μ–΄λ–€μ‹μœΌλ‘œ μ μš©λ˜λŠ” 건지 λͺ…ν™•ν•˜κ²Œ μ™€λ‹Ώμ§€λŠ” μ•Šμ•˜λ‹€. λ‹€μŒ 프리 ν”„λ‘œμ νŠΈμ—μ„œ νƒ€μž… 슀크립트 μ‚¬μš©ν•΄λ΄μ•Ό κ² λ‹€!!!!!

profile
λͺ©ν‘œλŠ” "ν•¨κ»˜ μΌν•˜κ³  싢은, ν•¨κ»˜ μΌν•΄μ„œ 쒋은" Front-end 개발자

0개의 λŒ“κΈ€