Javascript

[TS] Generics, Any 차이

유호야 2023. 3. 9. 06:30
반응형

Generics, Any 차이

타입을 변수로 활용해서 return 되는 타입과 연관시키면 좋다는 아이디어에서 generic의 개념이 나타났다

function helloString(message: string): string {
    return message;
}

function helloNumber(message: number): number {
    return message;
}

function hello(message: string | number) : string|number {
    return message;
}

function helloAny(message: any): any {
    return message;
}

console.log(helloAny(123));
console.log(helloAny('onetwothree'));
console.log(helloAny(true));

function helloGeneric<T>(message: T): T {
    return message;
}

console.log(helloGeneric('1234').length);
console.log(helloGeneric(1234));
console.log(helloGeneric(true));

이렇게 T 라는 것을 변수처럼 사용 가능하다

Generic의 장점

Generic은 Any보다 타입 안정성을 보장할 수 있습니다. Generic을 사용하면 컴파일러가 타입 체크를 할 수 있으며, 잘못된 타입 사용시 컴파일 에러를 발생시켜줍니다. 반면에 Any는 어떤 타입이든 받을 수 있기 때문에 컴파일러가 타입 체크를 하지 않습니다. 이로 인해 런타임 에러가 발생할 수 있습니다.

반응형