기본형
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);