• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

components.d.ts파일이 없어도 타입에러가 없는 이유

23.12.06 17:46 작성 조회수 341

0

강의에서 보여주시는 타입에러(색깔)이 나오지 않아 components.d.ts파일을 생상하지 않은 상태인데 강의시점보다 vue가 업데이트가 되서 그런걸까요 typeScript를 사용하지 않아서 그런건가요??

+추가로 unplugin-vue-components를 사용해서 dts:true를 사용하지 않아도(즉, components.d.ts파일 미생성) 동일하게 진행됩니다.

 

typeScript를 사용하지 않아서 타입에러가 없는거라면.. typescript 셋팅을 따로 해야될까요? 강의상 파일도 components.d.ts파일을 제외하면 ts파일은 보이지 않고 scripts상에서도 ts를 사용하시지는 않는것같은데 설치가 필요한지 궁금합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요 🙂

최신 버전의 VSCode는 파일 구조 및 내용을 분석하여 자동으로 타입을 추론하는 능력이 향상되었을 수 있습니다. 이 경우에는 명시적으로 타입을 정의하지 않아도 정상적으로 동작할 수 있습니다.

강의에서는 타입을 추론하지 못해서 Volar 공식문서에서 언급이 되어 있는 내용을 언급드린고요. 정상적으로 추론한다면 정의하지 않으셔도 됩니다.

Volar 공식문서 내용

Define Global Components

PR: https://github.com/vuejs/vue-next/pull/3399

Local components, Built-in components, native HTML elements Type-Checking is available with no configuration.

For Global components, you need to define GlobalComponents interface, for example:

// components.d.ts
declare module 'vue' {  // Vue >= 2.7
// declare module '@vue/runtime-dom' {  // Vue <= 2.6.14
  export interface GlobalComponents {
    RouterLink: typeof import('vue-router')['RouterLink']
    RouterView: typeof import('vue-router')['RouterView']
  }
}

export {}

(공식문서 참고링크 : https://marketplace.visualstudio.com/items?itemName=Vue.volar)

 

unplugin-vue-components도 강의와 다르게 동작 한다면 해당 라이브러리에서도 필요성을 느끼지 못해 제외 시켰을 것입니다.

TypeScript를 사용하지 않으신다면 별도로 셋팅하지 않으셔도 됩니다 👍