함수 구현 기법

매개변수 기본값 지정하기

함수호출시 인수를 전달하지 않더라도 매개변수에 기본적으로 값을 설정해둘 수 있습니다. 이를 default parameter라고 하고 아래와 같은 형태로 사용합니다.

(매개변수: 타입 = 매개변수 기본값)
export type Person = {name: string, age: number, livePoint: string}

export const makePerson = (name: string, age: number, livePoint: string = "Korea"): Person => {
  const person = {name: name, age:age, livePoint:livePoint}
  return person
}

console.log(makePerson("doyoon", 22, "suwon"))
console.log(makePerson("jun-sung", 23))

//{ name: 'doyoon', age: 22, livePoint: 'suwon' }
//{ name: 'jun-sung', age: 23, livePoint: 'Korea' }

객체 생성시 값 부분을 생략할 수 있는 Ts 구문

타입스크립트는 매개변수의 이름과 똑같은 이름의 속성을 가진 객체를 만들 수 있습니다. 이때 속성값 부분을 생략할 수 있는 단축 구문을 제공합니다.

export const makePerson = (name: string, age: number, livePoint: string = "Korea"): Person => {
  const person = {name, age, livePoint}
  return person
}

객체를 반환하는 화살표 함수

export const makePerson = (name: string, age: number, livePoint: string = "Korea") =>{name, age, livePoint}
// 이러면 안댐

export const makePerson = (name: string, age: number, livePoint: string = "Korea") =>({name, age, livePoint})

컴파일러가 {}를 객체로 해석하게 하려면 객체를 소괄호()로 감싸주어야 한다.

매개변수에 비구조화 할당문 사용

export type Person = {name: string, age: number, livePoint: string}

export const printPerson = ({name, age, livePoint}: Person): void => {
  console.log(`name: ${name}, age:${age}, livePoint: ${livePoint}`)
}

printPerson({name:"doyoon", age:22, livePoint:"Korea"})
// name: doyoon, age:22, livePoint: Korea

색인 키와 값으로 객체만들기

const makeObject = (key, value) => ({[key],value})

객체의 속성 이름을 변수로 만들려고 할 때 사용.

타입스크립트에서 {[key],value}와 같은 형태의 타입을 색인기능 타입 이라고 합니다.

type KeyType = {
	[key: string]: string
}

위와 같은 형태로 key와 value 타입을 명시합니다.

export type KeyValueType = {
  [key: string] : string //key는 string // value도 string
}

const makeObject = (key: string, value: string):KeyValueType => ({[key]: value})
console.log(makeObject("firstName", "Park"))
console.log(makeObject('name', 'en_sik'))

//{ firstName: 'Park' }
//{ name: 'en_sik' }

좋은 웹페이지 즐겨찾기