티스토리 뷰
함수에 type alias 지정하기
function 함수(a : string) : number{
}
함수에 타입 지정하는 방법은 코드가 너무 길어진다.
너무 길고 복잡할 땐 함수타입도 type alias로 저장해서 쓸 수 있음
파라미터는 문자로 받고 숫자를 return 하는 타입을 만들고 싶으면
type 함수타입 = ( a : string ) => number
화살표 함수에 넣으면 된다.
만든 타입을 함수에서 사용하려면?
함수를 만들 때 함수 표현식으로 만들어서 함수명 옆에 타입을 넣어줘야 한다.
*함수 표현식 : 변수에 함수를 할당하는 방식으로 함수 정의
let 함수명 = function( ){ }
let 함수 : 함수타입 = function (){
}
* 함수 만드는 법
//함수 표현식
let 함수 = function ( ){
};
//함수 선언식
function 함수( ){
};
요약하자면
1. 함수 타입 type alias로 만들 땐 화살표함수 ( ) => { } 모양으로 만들고
2. 그 대신 변수 만들어서 쓰는 함수 표현식에만 type alias 사용 가능하다.
귀찮으면 그냥 함수 만들 때 직접 타입 작성해도 됨
object에 type alias 지정하기
object 안에도 함수를 넣을 수 있다.(일반함수, 화살표함수 전부 가능)
let 회원정보 = {
name : "kim",
//일반함수
plusOne(a){
return a + 1
},
//화살표함수
changeName : ( ) => {
console.log('하이')
}
}
//함수 사용하기
회원정보.plusOne(1) //2
회워정보.changeName(); //하이
그럼 object 안의 함수들 타입지정은 어떻게?
type 내타입 = {
name : string,
plusOne : (a:number)=>number,
changeName : ()=>void,
}
plusOne과 changeName은 함수이므로 화살표 함수를 사용해 타입을 지정해줘야 한다.
만약 함수에 함수를 집어 넣고싶으면?
type cutZeroType = (a: string) => string;
let cutZero: cutZeroType = function (a) {
let result = a.replace(/^0+/, "");
return result;
};
type removeType = (a: string) => number;
let removeDash: removeType = function (a) {
let result = a.replace(/-/g, "");
return Number(result);
};
//위에서 만든 함수와 타입으로 함수 만들기
function 만들함수(x: string, func1: cutZeroType, func2: removeType) {
let result = func1(x);
let result2 = func2(result);
console.log(result2);
}
console.log(만들함수("010-4138", cutZero, removeDash));
복잡하니까 type alias 안쓰고 바로 타입지정
'Coding > typescript' 카테고리의 다른 글
[typescript] class에 타입지정 (0) | 2023.07.23 |
---|---|
[typescript] HTML 변경, 조작할 때 narrowing (0) | 2023.07.19 |
[typescript] Literal types으로 만드는 const 변수 유사품 (0) | 2023.07.18 |
[typescript] 타입 변수에 담아쓰기, 변경 막을때 readonly (0) | 2023.07.17 |
[typescript] 함수에 타입 지정하는법, void 타입, Narrowing (0) | 2023.07.17 |