티스토리 뷰
반응형
실무에서 js파일을 ts파일로 migrate은 되었지만 데이터 유형이 다양하고 depth가 깊어 any로 타입을 지정하여 사용하는 경우가 있다. 이를 EsLint에서는 error로써 판단하게 되는데(rule을 수정하여 변경할 수 있다), any로 명시할 바에 명시하지 않으면 되는것이 아닌가 싶었는데 정확히 그 차이를 설명할 정도의 구체적인 이유가 떠오르지 않아 정리해본다.

데이터 타입을 any로 선언하는 것
- any 타입은 TypeScript의 타입 시스템에서 모든 타입의 상위 타입이다.
- any 타입을 사용하면 해당 변수에 대한 모든 유형의 검사가 비활성화되며, 컴파일러가 타입 검사를 수행하지 않기 때문에 타입 안정성을 저하시킨다.
데이터 타입을 명시적으로 선언하지 않는 것
- 데이터 타입을 명시적으로 선언하지 않으면 Typescript는 해당 데이터의 타입을 추론하여 변수의 타입을 결정한다. 이는 변수가 선언될 때 할당된 값을 기반으로 결정된다.
따라서 any 타입을 선언하지 않으려고 타입을 명시하지 않으면 다양한 형태의 데이터를 사용할 때 컴파일 에러가 발생할 수 있다.
추가로 unknown 이라는 타입의 존재를 알게 되었는데 그에 대해서도 정리해본다.
데이터 타입을 unknown으로 선언하는 것
- unknown 타입은 TypeScript 3.0에서 도입된 타입으로, 어떤 유형의 값이든 할당할 수 있지만, 할당된 값의 유형을 알 수 없는 상태이다.
- unknown 타입을 사용하면 값을 사용하기 전에 명시적인 유형 확인을 수행해야 하며, 이를 통해 타입 안정성을 유지할 수 있다.
사실상 혼자 개발하는 것이 아니기 때문에 실무에서 이 unknown 타입을 사용하는 것은 어렵겠으나, 꼭 개인 프로젝트에서는 사용해봐야겠다
반응형
'Javascript와 Typescript' 카테고리의 다른 글
Javascript 진수 변환 (0) | 2024.12.30 |
---|---|
Javascript에서 빈 문자열을 숫자로 만들면? (1) | 2024.12.27 |
preventDefault vs. stoppropagation (0) | 2024.12.23 |
Math Prototype 사용 시 Babal Build Error -BABEL_TRANSFORM_ERROR (1) | 2024.12.20 |
Array.prototype.slice의 참조값 (0) | 2024.12.19 |
- Total
- Today
- Yesterday
반응형