[TypeScript] function type alias

김병화·2023년 4월 13일
0

기본형

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

// let 함수명: alias = function(){}
let NumOut: NumOutType = function (x, y) {
    return x + y;
};

내가 평소에 사용하는
function NumOut: NumOutType(){} 형태는 불가능하다.
익명함수 형태 사용



methods 안에 타입 지정

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

let User = {
    name: 'kim',
    age: 30,
    plusOne(x: number) {
        return x + 1;
    },
    changeName: () => {
        console.log('hi');
    },
};

User.plusOne(1);
User.changeName();


콜백함수 형태 (함수 안에 함수)

type CutZeroType = (x: string) => string;

let CutZero: CutZeroType = function (s) {
    let arr = s.split('');

    if (arr[0] === '0') {
        console.log(s.substring(1));
        return s.substring(1);
    } else {
        console.log(s);
        return s;
    }
};
CutZero('0ello');



type removeDashType = (x: string) => number;

let removeDash: removeDashType = function (s) {
    let result = s.replace(/-/g, '');
    console.log(result);
    return Number(result);
};
removeDash('t-e-s-t');



let LastFunc = function (x: string, func1: CutZeroType, func2: removeDashType) {
    let result1 = func1(x);
    let result2 = func2(result1); // 여기선 result1이 콜백함수
    console.log(result2);
};
LastFunc('010-1234-5678', CutZero, removeDash);

0개의 댓글