빵부스러기

[TypeScript] 동적 타입 VS 정적 타입

borobong230 2023. 3. 12. 15:40

Compile time 타입을 확인하는 언어들을 정적 타입

Run time때 타입을 확인하는 언어들을 동적 타입이라고 합니다.

 

대표적인 예로 

정적 타입을 사용하는 언어는 파이썬, 자바스크립트가 있습니다.

동적 타입을 사용하는 언어는 C언어, 타입스크립트가 있습니다.

 

정적 타입을 사용하는 언어의 특징은 다음과 같습니다.

1. 변수를 선언할때 타입을 명시해서 사용해야합니다.

2. 한번 선언한 타입은 변경할 수 없습니다.

 

let num: number = 230;
num = 'Hello World' // 오류

 

동적 타입을 사용하는 언어의 특징은 다음과 같습니다.

1. 변수를 선언할때 타입을 명시하지 않아도 됩니다. (런타임때 할당된 변수를 보고 타입을 넣어줌)

2. 한 변수가 여러개의 타입의 형태로 사용될 수 있습니다.

 

let num = 0; // number 타입
num = 'Hello World' // string 타입

 

Q. 타입을 지정해주지 않아도 되고, 유연하게 동작하는 동적 타입이 더 좋은 게 아닌가요?

A. 다음과 같은 경우에 문제가 발생할 수 있습니다. (의도하지 않은 오류가 발생할 수 있습니다.)

let num = '1'
num += 1 // 의도한 결과는 2이지만, 출력 값은 11