Skip to content

Latest commit

 

History

History
70 lines (49 loc) · 2.82 KB

함수에 타입.md

File metadata and controls

70 lines (49 loc) · 2.82 KB

함수에 타입

function sayWord(word) {
  return word;
}
  • word는 함수의 파라미터(매개변수)이다. sayWord 함수를 호출할 때 넘겨준 입력 값을 받는 역할을 한다.
sayWord("hello"); // hello 반환
sayWord("bye"); // bye 반환
  • 함수를 호출할 때 넘긴 문자열 hello, bye를 인자 이다.

함수의 타입 정의: 파라미터와 반환값

function sayWord(word: string): string {
  return word;
}
  • 함수의 반환값 타입은 위와 같이 함수 이름 오른쪽에 ‘: 타입이름’으로 지정할 수 있다. 이 함수의 반환값은 문자열이라는 것을 명시한다.
  • 함수의 입력 값인 파라미터 타입도 문자열로 지정할 수 있다.

타입스크립트 함수의 인자 특징

  • sayWord 함수는 파라미터가 1개이기 때문에 인자를 1개만 넘길 수 있다. 그런데 다음과 같이 문자열을 2개 넘긴다면 어떻게 될까?
function sayWord(word) {
  return word;
}
sayWord("hi", "capt"); // hi
  • 파라미터의 숫자보다 인자의 개수가 많더라도 에러가 발생하지 않고 다음과 같이 정상적으로 실행된다.
  • 초과된 인자는 실행에 영향을 미치지 않고 무시된다. 그러나 타입스크립트에서는 파라미터와 인자의 개수가 다르면 에러가 발생한다.

image

  • sayWord 함수는 파라미터가 1개이므로 첫 번째 인자인 'hi'만 유효하고, 두 번째 인자인 'capt'는 필요 없는 값이라고 안내한다.

옵셔널 파라미터

  • 옵셔널 파라미터는 ?로 표기한다. 선택적으로 사용하고 싶은 파라미터의 오른쪽에 ?를 붙이면 된다.
function sayMyName(firstName: string, lastName: string): string {
  return "my name : " + firstName + " " + lastName;
}

sayMyName("Captain", "Pangyo"); // my name : Captain Pangyo
  • 이 함수를 호출할 때 성(firstName)과 이름(lastName)을 모두 입력하면 다음과 같이 결과가 나온다.
  • 또한, sayMyName 함수를 호출할 때 인자를 2개를 넣지말고 첫번째 인자만 넘겨주면 어떻게 될까? 에러가 발생한다. 때로는 이렇게 함수의 파라미터를 선택적으로 사용하고 싶을 때가 생긴다. 이때 사용할 수 있는 것이 옵셔널 파라미터(optional parameter)이다.
function sayMyName(firstName: string, lastName?: string): string {
  return "my name : " + firstName + " " + lastName;
}

sayMyName("Captain"); // my name : Captain
  • 이제는 sayMyName 함수를 호출할 때 두 번째 인자를 넘기지 않아도 타입 에러가 발생하지 않는다. 옵셔널 파라미터를 이용하면 함수에 인자를 선택적으로 넘길 수 있다.