함수와 메소드에 type alias 지정하는 법
13 Apr 2023 | typeScript코딩애플강의를 보고 정리했습니다.
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();
이렇게 해주면 되겠다.