worldint 2023. 4. 23. 21:04

type-safe하다는 것은 타입이 안정적이라는것 :
타입이 안정적 이라는 것은 런타임시에 타입으로 인한 에러가 나지 않는다는것

런타임시에 에러가 나지 않는 이유는

컴파일 타임에서 에러를 띄워줘서 개발자가 수정하게 만든다

 

type-safety하지 않다는것 :

런타입시에 타입으로 인한 에러가 날 수 있다는것

컴파일 타임에서 타입이 맞지 않아도 에러를 안띄우고 그냥 넘어가서 런타임시에 에러가 나는것

 

그래서 자바스크립트는 type-safe하지 않다.

 

이유는 문자열 + 숫자 도 알아서 연산이 이루어짐

console.log('hihi'+1234);
//이런 연산도 알아서 형변환이 되면서 연산이 이루어진다

이러한 것도 type-safety하지 않다고 하고

 

 

아래와 같이 어떠한 연산(함수)가 어떤 타입을 리턴해줄지 모르는 상황도
type-safety하지 않다고 한다

 

 

아래처럼 케이지에는 사자가 들어있는데 

코드가 길어지거나 복잡해지면 
케이지에 어떤 값이 들어있는지 알 수 없다

const jerry = new Lion();

const cage = new Cage();
cage.put(jerry);


const duck = cage.get(); 
//개발자는 오리 타입이 나오길 원하는데 사자가 들어있음
//cage.get()이 어떤 값을 리턴해줄지 알 수 없음