function type Alias.
parameter 자리에 어떤 type이 들어오는지 정의, Arrow 옆에 return할 타입을 정의
type myFuncType = (a:string|number) => number;
const myFunc:myFuncType = () => {return 10}
object 안의 함수 타입지정
type InfoType = {
name: string;
age: number;
plusOne: (x:number) => number;
changeName: () => void;
}
let userInfo:InfoType = {
name : 'kim',
age : 30,
plusOne (x:number):number{
return x + 1
},
changeName : ():void => {
console.log('안녕')
}
}
//문자열이 인자로 주어졌을 때, 첫 문자열에 '0'이 있으면 제거하고, 다시 문자열로 return.
type cutZerotype = (stringChunk:string) => string;
const cutZero:cutZerotype = (stringChunk) => {
const convertStringChunkToArray = stringChunk.split('');
let convertString = '';
if(convertStringChunkToArray[0] === '0'){
convertString = convertStringChunkToArray.slice(1).join('')
}
console.log(convertString)
return convertString;
}
cutZero('01022744334');
//문자열이 인자로 주어졌을 때, 문자열 사이에 '-'가 있으면 제거하고, 숫자로 return.
type removeDashType = (stringChunk:string) => number;
const removeDash:removeDashType = (stringChunk) =>{
// const dashNumber:number = stringChunk.indexOf('-');
// console.log(stringChunk.slice(dashNumber,dashNumber+1));
const convertNumber = parseInt(stringChunk.split('-').join(''));
console.log(convertNumber);
return convertNumber;
}
removeDash('10-71-34-07-8-34-354-65')
// 1번째 인자에 들어오는 문자열을 앞서 만든 함수로 처리하여 그 결과를 콘솔창에 출력해줍니다.
// ex) myFunc('010-1111-2222', cutZero, removeDash) // output 1011112222
type removeZeroAndDashType =(stringChunk: string,cb1: Function,cb2:Function) => void;
const removeZeroAndDash:removeZeroAndDashType = (stringChunk,cb1,cb2) =>{
const firstConvert = cb1(stringChunk)
const secondConvert =cb2(firstConvert)
console.log(secondConvert);
}
removeZeroAndDash('021321-34523-4444',cutZero,removeDash)