본문 바로가기
프론트엔드/TypeScript

[TypeScript / 타입스크립트] unknown 과 any 의 차이점

by jinwanseo 2021. 11. 3.
728x90

[TypeScript / 타입스크립트] unknown 과 any의 차이

 

any와 unknown의 차이점을 분명히 알기 위해서는

any 타입에 대한 정의를 달리하자

 

any는 모든 타입을 뜻하는게 아니라 

기존 타입스크립트의 타입에 대한 제한과 확정이라는

실드를 해제한다고 생각하자

 

다시말해 타입스크립트의 목적은 

타입을 확정하거나 변수의 타입의 변경을 제한함으로써

디버깅을 명확히 하기 위함인데

 

any타입은 그런거 없이 실드를 해제하는 키워드이다

 

반면 unknown 이라는 키워드는 

any와 같이 유연하게 여러가지 타입의 값을

변수에 대입할수 있지만,

unknown 타입이 지정된 변수의 값과 다른 타입의

변수에 대입을 하려고할때 컴파일 에러가 발생한다.

 

아래 예제 코드를 참고하자

    let str : unknown = 'this is msg';
    let num : number = 10;
    num = str;
    //num은 number 타입이라 str 대입 불가

    let str2 : any = 'this is msg';
    let num2 : number = 10;
    num2 = str2;
    //num2는 number 타입이지만 str2로 인해 봉인 해제 (대입가능)
728x90

댓글