함수 선언문

function으로 만드는 자바스크립트 함수 선언문

function ABC(매개변수1, 매개변수2,[...]){
	return() //함수몸통
} 
// 자바스크립트의 함수 선언문

타입스크립트 함수 선언문(타입주석 추가)

function ABC(매개변수1: 매개변수1의 타입, 매개변수2: 매개변수2의 타입, [,...]) : 반환값(return) 타입 {
	return //함수몸통
}
//타입스크립트의 function키워드 함수 선언문

ex

function add(a:number, b: number):number {
	return(a + b)
}

매개변수와 반환값(return 값)의 타입 주석 생략

변수 때와 마찬가지로 함수 선언문에서도 매개변수와 반환값에 대한타입 주석을 생략할 수 있습니다.
(함수의 구현의도를 알기 어렵고 타입스크립트의 사용이유 퇴색)

void 타입

값을 반환하지 않는 함수는 return타입이 void입니다.

function printMe(name: string, age: number):void {
	console.log(`name: ${name}, age: ${age}`)
}

함수 시그니처

변수에 타입이 있든 함수에 타입이 있는데 함수의 타입을 함수 시그니처(function signature)라고 합니다.

(매개변수1 타입, 매개변수2 타입, [, ...]) => 반환값 타입
//함수의 시그니처(타입) 표현

함수 시그니처 사용 예

let printMe: (string, number) => void = function (name: string, age: number): void{}

만약 매개변수가 없으면 단순히 ()로 표현합니다.

() => void는 매개변수도 없고 반환값도 없는 함수 시그니처입니다.

type 키워드로 타입 별칭 만들기

타입스크립트는 type이라는 키워드를 제공합니다.
type 키워드는 기존에 존재하는 타입을 단순히 이름만 바꿔서 사용할 수 있게 해줍니다. 이 기능을 타입별칭이라고 합니다.

type 새로운 타입 = 기존 타입

타입 별칭 예

type stringNumberFunc = (string, number) => void
let f: stringNumberFunc = function(a: string, b:number): void {}
let g: stringNumberFunc = function(c: string, d:number): void {}

장점: 타입주석을 더 수월하게 붙일 수 있으며 타인과의 협업이 편해집니다.

선택적 매개변수

interface의 선택속성처럼 함수의 매개변수에도 다음처럼 이름 뒤에 물음표를 붙일 수 있습니다. 이를 선택적 매개변수라고 합니다.

function fn(arg1: string, arg?: number) void {}

선택적 매개변수는 함수 호출을 모두 가능하게 하고 싶을때 사용합니다.

function fn(arg1: string, arg?: number) {
	console.log(`arg1: ${arg?}`)
}

fn("hi", 1)
fn(hi,)

좋은 웹페이지 즐겨찾기