함수와 메소드에 type alias 지정하는 법

|

코딩애플강의를 보고 정리했습니다.

function type

함수 타입도 type alias로 저장해서 쓰는게 가능하다.

예를들어 다음과 같이 가정한다면,

  • 숫자 두개를 파라미터로 입력가능
  • 숫자를 return 하는 함수를 별명(alias)지어서 사용한다는 가정

이런식으로 타입을 만들 수 있다.

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

근데 이거를 이런식으로 만든타입을 함수에 집어넣으면 안된다.
(function 키워드에는 ()이거 내부랑 오른쪽에만 타입지정이 가능하기때문임)

// 이렇게는 안되고
function 함수이름 :NumOut (){}

이렇게 해줘야함

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

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

타입 지정에 관해서는 틀에 정해진건 없으니 type alias를 만들기 싫다면 함수 만들 때 직접 타입작성을 하면되겠다.

메소드 안에 타입 지정하기

메소드란 프로퍼티의 값으로 함수가 올 수도 있는데, 이러한 프로퍼티를 메소드(method)라고 불리운다.

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

이런 메소드에 타입을 지정해주려면 어떡해야할까?

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

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

회원정보.plusOne(1);
회원정보.changeName();

이렇게 해주면 되겠다.