Backend/TypeScript

[TypeScript] Type Interface (타입 유추하기)

누구세연 2023. 11. 5. 21:07

타입 유추(Type Interface)

개발자가 명시적으로 타입을 지정하지 않아도 TypeScript가 코드를 분석하여 변수 및 함수에 대한 타입을 유추하는 것을 말합니다.

이를 통해 코드 작성 시 타입을 명시적으로 선언하지 않더라도 타입 안정성을 유지할 수 있습니다.

 

예를 들어 보겠습니다.

let을 사용하여 string 데이터를 넣어보겠습니다.

그리고 마우스 커서를 stringType위에 올려보겠습니다.

이렇게 직접적으로 작성하지 않았는데도 string 타입이라고 정확하게 나오는 것을 확인할 수 있습니다.

boolean과 number 도 이렇게 잘 추론이 됩니다.

초기화할 때 값을 정확하게 넣어주면 타입으로 잘 추론된다는 것을 확인할 수 있습니다.

 

위의 booleanType을 boolean 타입으로 변경할 경우 문제가 없지만

string 타입을 넣으려고 하면 초기화할 때 boolean 타입으로 설정되었기 때문에 다른 타입으로 변경할 수 없습니다.

 

 

이번에는 const를 사용해서 선언을 해보겠습니다.

string 타입을 넣어보았는데 const string타입으로 유추된 것을 확인할 수 있습니다.

const string이라는 글자만 입력할 수 있다는 뜻입니다.

const로 변수를 선언하게 되면 처음에 선언할 때 들어간 값을 변경하지 못하니까 string보다 더 구체화된 타입이라고 볼 수 있습니다.

boolean 타입도 처음에 선언한 true 값이 무조건 들어가야 하는 타입이라는 것을 확인할 수 있습니다.

이렇게 const를 사용을 해서 선언을 하면 타입 추론할 때 조금 더 구체적인 타입으로 추론이 됩니다.

 

object 객체를 선언해 보겠습니다.

yujin의 object 타입도 유추가 잘되는 것을 확인할 수 있습니다.

const로 조금 더 구체적으로 선언되는지 확인해 보겠습니다.

let과 차이가 없는 것을 확인할 수 있습니다.

객체에서 각각의 프로퍼티를 구체화된 타입으로 유추하고 싶을 때는 캐스팅이라는 걸 해줘야 합니다.

캐스팅은 특정 타입으로 지정하는 것을 말합니다.

cons로 캐스팅을 지정해 보겠습니다.

as라는 키워드는 캐스팅할 때 쓰는 키워드입니다.

const로 캐스팅하면 구체적인 string과 number로 지정된 것을 확인할 수 있습니다.

 

Array 타입을 선언해 보겠습니다.

Array 같은 경우도 자동으로 타입 추론이 잘됩니다.

number array라는 걸 알 수 있습니다.

number 랑 string으로 이루어진 배열이라는 것이라고 잘 추론되는 것도 확인할 수 있습니다.

 

tuple 타입도 선언해 보겠습니다.

tuple은 각 요소의 타입을 미리 지정할 수 있습니다.

[1,3]으로 선언된 것을 확인할 수 있습니다.

tuple은 고정된 길이를 가지고 있으며 각 요소는 해당하는 인덱스에 따라 접근할 수 있습니다.

 

 

'Backend > TypeScript' 카테고리의 다른 글

[TypeScript] Union  (0) 2023.11.08
[TypeScript] Casting (캐스팅)  (0) 2023.11.08
[TypeScript] Enum  (0) 2023.11.03
[TypeScript] Type과 Interface  (1) 2023.11.01
[TypeScript] Typescript 기본 타입  (3) 2023.10.31