TypeScript Funtion

JavaScript vs. TypeScript

  • JavaScript ver.

    // named function
    function add(x, y){
        return x + y;
    }
    
    // arrow function
    let add = (x, y) => {
        return x + y;
    }
  • TypeScript ver.

    // named function
    function add(x: number, y: number): number {
      return x + y;
    }
    
    // arrow function
    let add = (x: number, y: number): number => {
      return x + y;
    }
  • TypeScriptμ—μ„œ ν•¨μˆ˜λ₯Ό ν‘œν˜„ν•  λ•ŒλŠ” λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…κ³Ό λ°˜ν™˜ νƒ€μž…μ„ λͺ…μ‹œν•΄μ•Ό 함

  • 각 λ§€κ°œλ³€μˆ˜μ— ν•΄λ‹Ήν•˜λŠ” νƒ€μž…μ„ μž‘μ„±ν•œ λ’€, λ°˜ν™˜λ˜λŠ” νƒ€μž…μ„ κ΄„ν˜Έ 뒀에 μž‘μ„± ν•΄μ€˜μ•Ό 함 (νƒ€μž… μΆ”λ‘  κΈ°λŠ₯을 ν™œμš©ν•˜μ§€ μ•ŠλŠ”λ‹€κ³  κ°€μ •ν–ˆμ„ λ•Œ)

  • 만일 ν•¨μˆ˜μ— 리턴값이 μ—†λ‹€λ©΄, voidλ₯Ό μ‚¬μš©ν•΄ μž‘μ„± κ°€λŠ₯ (νƒ€μž… μΆ”λ‘  κΈ°λŠ₯을 ν™œμš©ν•˜μ§€ μ•ŠλŠ”λ‹€κ³  κ°€μ •ν–ˆμ„ λ•Œ)

    let printAnswer = (): void => {
      console.log("YES");
    }
  • TypeScriptλŠ” JavaScript와 달리 λ§€κ°œλ³€μˆ˜μ˜ κ°œμˆ˜μ— 맞좰 μ „λ‹¬μΈμžλ₯Ό 전달해야 함

    let greeting = (firstName: string, lastName: string): string => {
      return `hello, ${firstName} ${lastName}`;
    }
    
    // μ—λŸ¬ λ°œμƒ
    greeting('coding');
    
    // 정상 μž‘λ™
    greeing('coding', 'kim');
    
    // μ—λŸ¬ λ°œμƒ
    greeting('coding', 'kim', 'hacker');
  • λ§Œμ•½ μ „λ‹¬μΈμžλ₯Ό μ „λ‹¬ν•˜μ§€ μ•Šκ±°λ‚˜, undefinedλ₯Ό μ „λ‹¬ν–ˆμ„ λ•Œ 할당될 λ§€κ°œλ³€μˆ˜μ˜ 값을 정해놓을 μˆ˜λ„ 있음.

  • μ΄λŠ” JavaScriptμ—μ„œμ˜ default parameter와 같은 λ™μž‘μ„ 함.

    let greeting = (firstName: string, lastName: string ="kim"): string => {
          return `hello, ${firstName} ${lastName}`;
      }
    
      // 정상 μž‘λ™ 
      greeting('coding');
    
      // 정상 μž‘λ™
      greeting('coding', undefined);
    
      // μ—λŸ¬ λ°œμƒ
      greeting('coding', 'kim', 'hacker');
  • ν˜Ήμ€ 선택적 λ§€κ°œλ³€μˆ˜λ₯Ό μ›ν•œλ‹€λ©΄ **λ§€κ°œλ³€μˆ˜μ˜ 이름 끝에 ?**λ₯Ό λΆ™μž„μœΌλ‘œμ¨ ν•΄κ²°ν•  μˆ˜λ„ 있음

      let greeting = (firstName: string, lastName?: string): string => {
          return `hello, ${firstName} ${lastName}`;
      }
    
      // 정상 μž‘λ™
      greeting('coding');
    
      // 정상 μž‘λ™
      greeting('coding', 'kim');
    
      // μ—λŸ¬ λ°œμƒ
      greeting('coding', 'kim', 'hacker');

Last updated