[TIL_2023.12.08] Nest.JS 타입

김효진·2023년 12월 8일
0

nest.js generic 타입 사용법

  • 함수에는 타입을 무조건 지정해줘야 함
  • funtion 함수이름 (파라미터 : 타입) : 리턴할 타입 {return ~~ } 의 형태
  1. 기본타입 : number,string,boolean
const getPrimitive = (arg1: string, arg2: number, arg3: boolean): [boolean, number, string] => {
    return [arg3, arg2, arg1];
};

const result= getPrimitive('hyojin', 27, true);
  1. any 타입 : js와 같음. 모든 타입이 다 들어올 수 있고 바뀔 수 있음
const getAny = (arg1: any, arg2: any, arg3: any): [any, any, any] => {
    return [arg3, arg2, arg1]; // any는 아무 타입이나 다 들어갈 수 있음
};

const result = getAny('hyojin', 27, true);
  1. unknown 타입 : unknown을 주고 이후 조건문을 통해 걸러냄
const getUnknown = (arg1: unknown, arg2: unknown, arg3: unknown): [unknown, unknown, unknown] => {
    if (typeof arg1 === 'number') console.log(arg1 + 100);

    return [arg3, arg2, arg1];
};

const result = getUnknown('hyojin', 27, true);

4-1. generic 타입 -> any, unknown보다 더 안전한 버전으로 한번 특정 타입으로 사용하고 나면 이후부터 해당 타입으로 값을 넣어야함.
아래 코드에서 개발자가 generic타입으로 함수를 생성할 때 Type1,2,3 은 임의로 만든 타입의 값이고 어떤 이름이든 개발자가 지정하기 나름!
이후 사용자가 Type1에 number 타입을 사용했다면 이후 Type1은 number 타입만 들어갈 수 있음 -> 보통 generic 타입은 사용자가 지정하기 보다 프레임워크 등을 만든 사람이 해당 프레임워크를 만들때 사용함 -> 그리고 사용자가 본인 니즈에 맞게 타입을 지정해서 사용하게됨.

function getGeneric<Type3, Type2, Type1>(arg1: Type1, arg2: Type2, arg3: Type3): [Type3, Type2, Type1] {
    return [arg3, arg2, arg1];
}

const result = getGeneric('kitty', 27, true);

// generic 생성 이후 특정 데이터타입을 지정해서 호출하고 싶은 경우 아래와 같이 사용
// const result = getGeneric<string, number, boolean>('hyojin', 27, true);

4-2. generic 타입 -> 화살표함수 버전

const getGeneric = <Type3, Type2, Type1>(arg1: Type1, arg2: Type2, arg3: Type3): [Type3, Type2, Type1] => {
    return [arg3, arg2, arg1];
};

const result = getGeneric('hyojin', 27, true);
profile
더 많은 사람들이 더 좋은 정보와 서비스를 누릴 수 있게!!

0개의 댓글