❌ 에러
mp4 형식 파일이 import 안 되는 에러 발생
별 다른 타입을 지정할 필요가 없는 view 컴포넌트 였어서
jsx -> tsx로 변경만 하면 되는 상황인 줄 알았는데
생각지도 못 한 비디오 파일에서 에러가 발생했다.
사실 jsx로 그냥 사용해도 별 문제는 없는 상황이었지만
오류가 발생하는 원인이 궁금하기도 했고
나중에 반드시 써먹을 일이 있을 것 같아 찾아보기로했다.
✅ 에러해결
@type 폴더 생성해서 해결
하단에 첨부한 링크를 들어가서 확인해보니 타입스크립트에서는
라이브러리를 설치할 때 @type 을 앞에 붙여서 설치를 하는데
파일을 import할 때도 같은 원리로 @type을 지정해줄 필요가 있었던 것이다
위와 같이 별로의 폴더 생성후
`videos.d.ts` 파일에서 mp4 형식을 사용할 수 있도록 모듈 선언해줘서 해결할 수 있었음
🤔 @type 쓰는 이유?
타입스크립트를 사용하면서 기존에 사용하던 npm 라이브러리는
@타입을 붙여서 다시 인스톨을 해줘야하는데 그 이유가 궁금해서 찾아봤다.
라이브러리의 내부 코드에 대한 타입이 정의되어 있지 않아 라이브러리를 사용할 때
타입스크립트 파일에서 타입 추론을 할 수 없기 때문입니다. 이런 경우에는
@types 라는 라이브러리를 설치하면 됩니다.
자바스크립트 라이브러리는 대부분 @types 라는 별칭으로
타입스크립트 추론이 가능한 보조 라이브러리를 제공합니다.
(출처) : 타입스크립트 핸드북 - Config - types 라이브러리
자바스크립트 라이브러리를 그대로 타입스크립트 프로젝트에서 사용하면
타입스크립트 파일에서 타입 추론을 할 수 없기 때문에
별로의 타입 추론기능을 제공하는 @types 라이브러리가 필요한 것을 알 수 있었다
참고 자료