728x90
반응형
함수 type 을 저장하기
함수에 들어갈 파라미터와 return 값의 타입들도 지정할 수 있다고 배웠는데,
이 함수의 타입도 type alias 로 저장해서 사용할 수가 있다.
type NumOut = (x : number, y : number ) => number ;
위는 예시이다
NumOut 이라는 타입을 만든건데,
이 타입은 함수를 위한 타입이다.
number 타입의 x 와 number 타입의 y 를 파라미터로 받아야하고, return 값이 number 타입이어야한다는 의미이다.
그래서 이 NumOut 이라는 type alias 를 함수에 직접 사용해보는 예시는 아래와 같다
type NumOut = (x : number, y : number ) => number
let ABC :NumOut = function(x,y){
return x + y
}
ABC 라는 함수가 있는데, 이 함수의 타입을 NumOut 으로 지정해줬다.
이렇게 함수에 대한 type alias 를 작성해줄 때에는 arrow function 으로 적어주어야만 한다.
방식은
함수이름 : type alias
이렇게 작성해주면된다.
이렇게 할 수도 있다-는 거고, 함수 만들때 타입을 각각 지정해줘도 문제는 없다.
methods 안에 타입지정하기
object 안에 함수를 넣는데, 이 함수의 타입지정을 하는 방법도 알아보자
type MemberType = {
name : string,
age : number,
plusOne : ( x :number ) => number,
changeName : () => void
}
let Member: MemberType = {
name : 'kim',
age : 30,
plusOne (x){
return x + 1
},
changeName : () => {
console.log('이름 바꾸기')
}
}
Member.plusOne(1);
Member.changeName();
MemberType 이라는 타입을 만들어서 Member 라는 함수에 적용해줬다.
실습 과제
1. 함수 두개를 만들어야한다.
cutZero 라는 함수는 문자를 하나 입력하면 맨 앞에 '0' 문자가 있을 시, 제거하고 문자 타입으로 return 한다
removeDash() 라는 함수는 문자를 하나 입력하면 만약 - 대시 기호가 있을 시 제거하고 문자 타입으로 return 한다.
type alias 를 사용하라
type CutZeroType = (x:string) => string
let cutZero :CutZeroType = function(x) {
let result = x.replace(/^0+/, "");
return result
}
type removeDashType = (x:string) => string;
let removeDash: removeDashType = function (x){
let result = x.replace(/-/g, "");
return result
}
console.log(cutZero("01230123")) // "1230123"
console.log(removeDash("love-love")) // "lovelove"
ref: 코딩애플
728x90
반응형