티스토리 뷰

반응형
 

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

https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#any
https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#any


데이터 타입을 any로 선언하는 것

  • any 타입은 TypeScript의 타입 시스템에서 모든 타입의 상위 타입이다.
  • any 타입을 사용하면 해당 변수에 대한 모든 유형의 검사가 비활성화되며, 컴파일러가 타입 검사를 수행하지 않기 때문에 타입 안정성을 저하시킨다.

데이터 타입을 명시적으로 선언하지 않는 것

  • 데이터 타입을 명시적으로 선언하지 않으면 Typescript는 해당 데이터의 타입을 추론하여 변수의 타입을 결정한다. 이는 변수가 선언될 때 할당된 값을 기반으로 결정된다.
 

따라서 any 타입을 선언하지 않으려고 타입을 명시하지 않으면 다양한 형태의 데이터를 사용할 때 컴파일 에러가 발생할 수 있다.

추가로 unknown 이라는 타입의 존재를 알게 되었는데 그에 대해서도 정리해본다.

데이터 타입을 unknown으로 선언하는 것

  • unknown 타입은 TypeScript 3.0에서 도입된 타입으로, 어떤 유형의 값이든 할당할 수 있지만, 할당된 값의 유형을 알 수 없는 상태이다.
  • unknown 타입을 사용하면 값을 사용하기 전에 명시적인 유형 확인을 수행해야 하며, 이를 통해 타입 안정성을 유지할 수 있다.

사실상 혼자 개발하는 것이 아니기 때문에 실무에서 이 unknown 타입을 사용하는 것은 어렵겠으나, 꼭 개인 프로젝트에서는 사용해봐야겠다

반응형
Total
Today
Yesterday
반응형