[function type 도 저장가능]
함수 타입도 type alias로 저장해서 쓸 수 있습니다.
예를 들어서 1. 숫자 두개를 파라미터로 입력할 수 있고
2. 숫자를 return 하는 함수를 별명을 지어서 사용하려면
type NumOut = (x : number, y : number ) => number ;
let ABC :NumOut = function(x,y){
return x + y
}
함수를 만들 때
let 함수명 = function(){} 이렇게 해도 되기 때문에
함수명 오른쪽에 함수명 : 타입별명
이렇게 지정해서 사용하는 것입니다.
함수 type alias 부착하려면, 함수 표현식 사용해야 한다.
1) 함수타입은 () => {}
2) 함수표현식으로!
function 함수(){} // 함수선언식
const 함수 = () => // 함수표현식
[methods 안에 타입지정하기]
object 자료 안에 함수도 넣을 수 있습니다.
type Member = {
name: string,
age: number,
plusOne : (x: number) => number,
changeName :() => void
}
let 회원정보 = {
name : 'kim',
age : 30,
plusOne (x){
return x + 1
},
changeName : () => {
console.log('안녕')
}
}
회원정보.plusOne(1);
회원정보.changeName();
<연습문제>
다음 함수2개를 만들어보고 타입까지 정의해보십시오.
type CutType = (x :string) => string
let cutZero :CutType = function (x){
let result = x.replace(/^0+/, "");
return result
}
function removeDash(x :string) :number{
let result = x.replace(/-/g, "");
return parseFloat(result)
}
cutZero는 파라미터 입력하면 첫 글자 0을 제거해주고 return,
removeDash는 파라미터 입력하면 - 대시제거해주고 return 하라고 썼습니다.
/어쩌구/ 이건 정규식문법인데 정규식은 글자에서 원하는 글자를 찾는 식일 뿐입니다.
그리고 removeDash는 return 하기 전에 숫자로 변형했습니다.