[typescript] 함수와 methods에 type alias 지정하는 법

조수진·2023년 7월 17일

[function type 도 저장가능]
함수 타입도 type alias로 저장해서 쓸 수 있습니다.

예를 들어서 1. 숫자 두개를 파라미터로 입력할 수 있고
2. 숫자를 return 하는 함수를 별명을 지어서 사용하려면

type NumOut = (x : number, y : number ) => number ;

let ABC :NumOut = function(x,y){
  return x + y
}

함수를 만들 때
let 함수명 = function(){} 이렇게 해도 되기 때문에
함수명 오른쪽에 함수명 : 타입별명
이렇게 지정해서 사용하는 것입니다.

함수 type alias 부착하려면, 함수 표현식 사용해야 한다.
1) 함수타입은 () => {}
2) 함수표현식으로!

function 함수(){}     // 함수선언식 
const 함수 = () =>    // 함수표현식

[methods 안에 타입지정하기]
object 자료 안에 함수도 넣을 수 있습니다.


type Member = {
  name: string,
  age: number,
  plusOne : (x: number) => number,
  changeName :() => void
} 

let 회원정보 = {
  name : 'kim',
  age : 30,
  plusOne (x){
    return x + 1
  },
  changeName : () => {
    console.log('안녕')
  }
}
회원정보.plusOne(1);
회원정보.changeName();

<연습문제>
다음 함수2개를 만들어보고 타입까지 정의해보십시오.

  • cutZero()라는 함수를 만듭시다. 이 함수는 문자를 하나 입력하면 맨 앞에 '0' 문자가 있으면 제거하고 문자 type으로 return 해줍니다.
  • removeDash()라는 함수를 만듭시다. 이 함수는 문자를 하나 입력하면 대시기호 '-' 가 있으면 전부 제거해주고 그걸 숫자 type으로 return 해줍니다.
  • 함수에 타입지정시 type alias를 꼭 써보도록 합시다.
type CutType = (x :string) => string

let cutZero :CutType = function (x){
    let result = x.replace(/^0+/, "");
    return result
}
function removeDash(x :string) :number{
    let result = x.replace(/-/g, "");
    return parseFloat(result)
}

cutZero는 파라미터 입력하면 첫 글자 0을 제거해주고 return,
removeDash는 파라미터 입력하면 - 대시제거해주고 return 하라고 썼습니다.
/어쩌구/ 이건 정규식문법인데 정규식은 글자에서 원하는 글자를 찾는 식일 뿐입니다.
그리고 removeDash는 return 하기 전에 숫자로 변형했습니다.

profile
꾸준함의 힘을 믿는 프론트엔드 개발자

0개의 댓글