카테고리 없음

Type Annotation을 써야 할 때 (1) any Type

DevilFront 2022. 1. 13. 12:16
반응형

타입스크립트의 타입에는 여러가지가 있지만 'any'라는 타입이 존재한다. 단어 의미 그대로 '어떤' 것이 올 지 모른다는 것이다. 

 

예를 들어 보면 

 

const json = '{"x":10, "y":20}';
const coordinates = JSON.parse(json);  // {x:10, y:20}  // x : number, y : number

JSON.parse 메소드에 위와 같은 인자를 넣었을 때 값이다. 

 

const json = '{"first":"devil", "last":"front}';
const coordinates = JSON.parse(json); // {first : 'devil', last : 'front' } // first : string, last : string

 

 

 

위의 예처럼 다양한 어떤 타입의 인자가 들어가고 어떤 타입의 리턴값이 나올 지 모르기 때문에 any 타입이 지정된 것이다. 

 

이 any 타입은 없을 수록 좋다. 당장의 밑줄 에러를 없애기 위해 any로 지정하면서 코딩을 하는 건 타입스크립트를 쓰는 의미가 없는 것이다. any 타입이 붙은 순간 컴파일러로 부터 에러의 위험에서 무적이 되기 때문에 값을 가지고 있는 것들은 타입을 지정하는 것이 좋다. 

 

그 예로 

 

 

 

누가 봐도 coordiates 에 저런 프로퍼티가 없겠지만 전혀 에러가 잡히지 않는다. 

 

이런 경우에는 타입을 지정해 줘야 하는데 값을 담아줄 coordinates에 타입을 지정해주면 된다. 

 

const json = '{"x":10, "y":20}';
const coordinates : {x:number, y:number} = JSON.parse(json);

본인이 인자로 넣을 타입에 맞게 지정해주면 되겠다. 

반응형